use reflow to migrate from flow to typescript

This commit is contained in:
Sebastian Sdorra
2019-10-19 16:38:07 +02:00
parent f7b8050dfa
commit 6e7a08a3bb
495 changed files with 14239 additions and 13766 deletions

View File

@@ -1,24 +0,0 @@
//@flow
import React from "react";
import { ExtensionPoint } from "@scm-manager/ui-extensions";
import type { Repository } from "@scm-manager/ui-types";
import { Image } from "@scm-manager/ui-components";
type Props = {
repository: Repository
};
class RepositoryAvatar extends React.Component<Props> {
render() {
const { repository } = this.props;
return (
<p className="image is-64x64">
<ExtensionPoint name="repos.repository-avatar" props={{ repository }}>
<Image src="/images/blib.jpg" alt="Logo" />
</ExtensionPoint>
</p>
);
}
}
export default RepositoryAvatar;

View File

@@ -0,0 +1,28 @@
import React from 'react';
import { ExtensionPoint } from '@scm-manager/ui-extensions';
import { Repository } from '@scm-manager/ui-types';
import { Image } from '@scm-manager/ui-components';
type Props = {
repository: Repository;
};
class RepositoryAvatar extends React.Component<Props> {
render() {
const { repository } = this.props;
return (
<p className="image is-64x64">
<ExtensionPoint
name="repos.repository-avatar"
props={{
repository,
}}
>
<Image src="/images/blib.jpg" alt="Logo" />
</ExtensionPoint>
</p>
);
}
}
export default RepositoryAvatar;

View File

@@ -1,12 +1,11 @@
//@flow
import React from "react";
import type { Repository } from "@scm-manager/ui-types";
import { CardColumn, DateFromNow } from "@scm-manager/ui-components";
import RepositoryEntryLink from "./RepositoryEntryLink";
import RepositoryAvatar from "./RepositoryAvatar";
import React from 'react';
import { Repository } from '@scm-manager/ui-types';
import { CardColumn, DateFromNow } from '@scm-manager/ui-components';
import RepositoryEntryLink from './RepositoryEntryLink';
import RepositoryAvatar from './RepositoryAvatar';
type Props = {
repository: Repository
repository: Repository;
};
class RepositoryEntry extends React.Component<Props> {
@@ -15,11 +14,11 @@ class RepositoryEntry extends React.Component<Props> {
};
renderBranchesLink = (repository: Repository, repositoryLink: string) => {
if (repository._links["branches"]) {
if (repository._links['branches']) {
return (
<RepositoryEntryLink
icon="code-branch"
to={repositoryLink + "/branches"}
to={repositoryLink + '/branches'}
/>
);
}
@@ -27,11 +26,11 @@ class RepositoryEntry extends React.Component<Props> {
};
renderChangesetsLink = (repository: Repository, repositoryLink: string) => {
if (repository._links["changesets"]) {
if (repository._links['changesets']) {
return (
<RepositoryEntryLink
icon="exchange-alt"
to={repositoryLink + "/changesets"}
to={repositoryLink + '/changesets'}
/>
);
}
@@ -39,20 +38,20 @@ class RepositoryEntry extends React.Component<Props> {
};
renderSourcesLink = (repository: Repository, repositoryLink: string) => {
if (repository._links["sources"]) {
if (repository._links['sources']) {
return (
<RepositoryEntryLink icon="code" to={repositoryLink + "/sources"} />
<RepositoryEntryLink icon="code" to={repositoryLink + '/sources'} />
);
}
return null;
};
renderModifyLink = (repository: Repository, repositoryLink: string) => {
if (repository._links["update"]) {
if (repository._links['update']) {
return (
<RepositoryEntryLink
icon="cog"
to={repositoryLink + "/settings/general"}
to={repositoryLink + '/settings/general'}
/>
);
}

View File

@@ -1,12 +1,11 @@
//@flow
import React from "react";
import { Link } from "react-router-dom";
import styled from "styled-components";
import { Icon } from "@scm-manager/ui-components";
import React from 'react';
import { Link } from 'react-router-dom';
import styled from 'styled-components';
import { Icon } from '@scm-manager/ui-components';
type Props = {
to: string,
icon: string
to: string;
icon: string;
};
const PointerEventsLink = styled(Link)`

View File

@@ -1,11 +1,10 @@
//@flow
import React from "react";
import { CardColumnGroup } from "@scm-manager/ui-components";
import type { RepositoryGroup } from "@scm-manager/ui-types";
import RepositoryEntry from "./RepositoryEntry";
import React from 'react';
import { CardColumnGroup } from '@scm-manager/ui-components';
import { RepositoryGroup } from '@scm-manager/ui-types';
import RepositoryEntry from './RepositoryEntry';
type Props = {
group: RepositoryGroup
group: RepositoryGroup;
};
class RepositoryGroupEntry extends React.Component<Props> {

View File

@@ -1,13 +1,12 @@
//@flow
import React from "react";
import React from 'react';
import type { Repository } from "@scm-manager/ui-types";
import { Repository } from '@scm-manager/ui-types';
import groupByNamespace from "./groupByNamespace";
import RepositoryGroupEntry from "./RepositoryGroupEntry";
import groupByNamespace from './groupByNamespace';
import RepositoryGroupEntry from './RepositoryGroupEntry';
type Props = {
repositories: Repository[]
repositories: Repository[];
};
class RepositoryList extends React.Component<Props> {

View File

@@ -1,74 +0,0 @@
// @flow
import groupByNamespace from "./groupByNamespace";
const base = {
type: "git",
_links: {}
};
const slartiBlueprintsFjords = {
...base,
namespace: "slarti",
name: "fjords-blueprints"
};
const slartiFjords = {
...base,
namespace: "slarti",
name: "fjords"
};
const hitchhikerRestand = {
...base,
namespace: "hitchhiker",
name: "restand"
};
const hitchhikerPuzzle42 = {
...base,
namespace: "hitchhiker",
name: "puzzle42"
};
const hitchhikerHeartOfGold = {
...base,
namespace: "hitchhiker",
name: "heartOfGold"
};
const zaphodMarvinFirmware = {
...base,
namespace: "zaphod",
name: "marvin-firmware"
};
it("should group the repositories by their namespace", () => {
const repositories = [
zaphodMarvinFirmware,
slartiBlueprintsFjords,
hitchhikerRestand,
slartiFjords,
hitchhikerHeartOfGold,
hitchhikerPuzzle42
];
const expected = [
{
name: "hitchhiker",
repositories: [
hitchhikerHeartOfGold,
hitchhikerPuzzle42,
hitchhikerRestand
]
},
{
name: "slarti",
repositories: [slartiFjords, slartiBlueprintsFjords]
},
{
name: "zaphod",
repositories: [zaphodMarvinFirmware]
}
];
expect(groupByNamespace(repositories)).toEqual(expected);
});

View File

@@ -0,0 +1,73 @@
import groupByNamespace from './groupByNamespace';
const base = {
type: 'git',
_links: {},
};
const slartiBlueprintsFjords = {
...base,
namespace: 'slarti',
name: 'fjords-blueprints',
};
const slartiFjords = {
...base,
namespace: 'slarti',
name: 'fjords',
};
const hitchhikerRestand = {
...base,
namespace: 'hitchhiker',
name: 'restand',
};
const hitchhikerPuzzle42 = {
...base,
namespace: 'hitchhiker',
name: 'puzzle42',
};
const hitchhikerHeartOfGold = {
...base,
namespace: 'hitchhiker',
name: 'heartOfGold',
};
const zaphodMarvinFirmware = {
...base,
namespace: 'zaphod',
name: 'marvin-firmware',
};
it('should group the repositories by their namespace', () => {
const repositories = [
zaphodMarvinFirmware,
slartiBlueprintsFjords,
hitchhikerRestand,
slartiFjords,
hitchhikerHeartOfGold,
hitchhikerPuzzle42,
];
const expected = [
{
name: 'hitchhiker',
repositories: [
hitchhikerHeartOfGold,
hitchhikerPuzzle42,
hitchhikerRestand,
],
},
{
name: 'slarti',
repositories: [slartiFjords, slartiBlueprintsFjords],
},
{
name: 'zaphod',
repositories: [zaphodMarvinFirmware],
},
];
expect(groupByNamespace(repositories)).toEqual(expected);
});

View File

@@ -1,8 +1,7 @@
// @flow
import type { Repository, RepositoryGroup } from "@scm-manager/ui-types";
import { Repository, RepositoryGroup } from '@scm-manager/ui-types';
export default function groupByNamespace(
repositories: Repository[]
repositories: Repository[],
): RepositoryGroup[] {
let groups = {};
for (let repository of repositories) {
@@ -12,7 +11,7 @@ export default function groupByNamespace(
if (!group) {
group = {
name: groupName,
repositories: []
repositories: [],
};
groups[groupName] = group;
}

View File

@@ -1,2 +0,0 @@
import RepositoryList from "./RepositoryList";
export default RepositoryList;

View File

@@ -0,0 +1,2 @@
import RepositoryList from './RepositoryList';
export default RepositoryList;