diff --git a/scm-ui/ui-components/src/BackendErrorNotification.tsx b/scm-ui/ui-components/src/BackendErrorNotification.tsx
index d2c06e5823..5319243f79 100644
--- a/scm-ui/ui-components/src/BackendErrorNotification.tsx
+++ b/scm-ui/ui-components/src/BackendErrorNotification.tsx
@@ -2,11 +2,10 @@ import React from "react";
import { BackendError } from "./errors";
import Notification from "./Notification";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
-type Props = {
+type Props = WithTranslation & {
error: BackendError;
- t: (p: string) => string;
};
class BackendErrorNotification extends React.Component {
@@ -122,4 +121,4 @@ class BackendErrorNotification extends React.Component {
};
}
-export default translate("plugins")(BackendErrorNotification);
+export default withTranslation("plugins")(BackendErrorNotification);
diff --git a/scm-ui/ui-components/src/Breadcrumb.tsx b/scm-ui/ui-components/src/Breadcrumb.tsx
index 3afdf6d2dc..8402bc25eb 100644
--- a/scm-ui/ui-components/src/Breadcrumb.tsx
+++ b/scm-ui/ui-components/src/Breadcrumb.tsx
@@ -1,13 +1,13 @@
import React from "react";
import { Link } from "react-router-dom";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import classNames from "classnames";
import styled from "styled-components";
import { binder, ExtensionPoint } from "@scm-manager/ui-extensions";
import { Branch, Repository } from "@scm-manager/ui-types";
import Icon from "./Icon";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
branch: Branch;
defaultBranch: Branch;
@@ -15,9 +15,6 @@ type Props = {
revision: string;
path: string;
baseUrl: string;
-
- // Context props
- t: (p: string) => string;
};
const FlexStartNav = styled.nav`
@@ -99,4 +96,4 @@ class Breadcrumb extends React.Component {
}
}
-export default translate("commons")(Breadcrumb);
+export default withTranslation("commons")(Breadcrumb);
diff --git a/scm-ui/ui-components/src/DateFromNow.tsx b/scm-ui/ui-components/src/DateFromNow.tsx
index cdbf5adb10..a81cd625ba 100644
--- a/scm-ui/ui-components/src/DateFromNow.tsx
+++ b/scm-ui/ui-components/src/DateFromNow.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { translate, InjectedI18nProps } from "react-i18next";
+import { withTranslation, WithTranslation } from "react-i18next";
import { formatDistance, format, parseISO, Locale } from "date-fns";
import { enUS, de, es } from "date-fns/locale";
import styled from "styled-components";
@@ -16,7 +16,7 @@ const supportedLocales: LocaleMap = {
es
};
-type Props = InjectedI18nProps & {
+type Props = WithTranslation & {
date?: DateInput;
timeZone?: string;
@@ -90,4 +90,4 @@ class DateFromNow extends React.Component {
}
}
-export default translate()(DateFromNow);
+export default withTranslation()(DateFromNow);
diff --git a/scm-ui/ui-components/src/ErrorNotification.tsx b/scm-ui/ui-components/src/ErrorNotification.tsx
index 23f9f57485..12d8066b63 100644
--- a/scm-ui/ui-components/src/ErrorNotification.tsx
+++ b/scm-ui/ui-components/src/ErrorNotification.tsx
@@ -1,11 +1,10 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { BackendError, ForbiddenError, UnauthorizedError } from "./errors";
import Notification from "./Notification";
import BackendErrorNotification from "./BackendErrorNotification";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
error?: Error;
};
@@ -40,4 +39,4 @@ class ErrorNotification extends React.Component {
}
}
-export default translate("commons")(ErrorNotification);
+export default withTranslation("commons")(ErrorNotification);
diff --git a/scm-ui/ui-components/src/GroupAutocomplete.tsx b/scm-ui/ui-components/src/GroupAutocomplete.tsx
index 6012519a75..ffaf09f626 100644
--- a/scm-ui/ui-components/src/GroupAutocomplete.tsx
+++ b/scm-ui/ui-components/src/GroupAutocomplete.tsx
@@ -1,14 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import AutocompleteProps from "./UserGroupAutocomplete";
import UserGroupAutocomplete from "./UserGroupAutocomplete";
-type Props = AutocompleteProps & {
- // Context props
- t: (p: string) => string;
-};
-
-class GroupAutocomplete extends React.Component {
+class GroupAutocomplete extends React.Component {
render() {
const { t } = this.props;
return (
@@ -23,4 +18,4 @@ class GroupAutocomplete extends React.Component {
}
}
-export default translate("commons")(GroupAutocomplete);
+export default withTranslation("commons")(GroupAutocomplete);
diff --git a/scm-ui/ui-components/src/LinkPaginator.tsx b/scm-ui/ui-components/src/LinkPaginator.tsx
index fc736785d9..a1f9f7b599 100644
--- a/scm-ui/ui-components/src/LinkPaginator.tsx
+++ b/scm-ui/ui-components/src/LinkPaginator.tsx
@@ -1,15 +1,12 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { PagedCollection } from "@scm-manager/ui-types";
import { Button } from "./buttons";
-type Props = {
+type Props = WithTranslation & {
collection: PagedCollection;
page: number;
filter?: string;
-
- // context props
- t: (p: string) => string;
};
class LinkPaginator extends React.Component {
@@ -123,4 +120,4 @@ class LinkPaginator extends React.Component {
return null;
}
}
-export default translate("commons")(LinkPaginator);
+export default withTranslation("commons")(LinkPaginator);
diff --git a/scm-ui/ui-components/src/Loading.tsx b/scm-ui/ui-components/src/Loading.tsx
index babf4c934f..ad1bff842f 100644
--- a/scm-ui/ui-components/src/Loading.tsx
+++ b/scm-ui/ui-components/src/Loading.tsx
@@ -1,10 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import styled from "styled-components";
import Image from "./Image";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
message?: string;
};
@@ -33,4 +32,4 @@ class Loading extends React.Component {
}
}
-export default translate("commons")(Loading);
+export default withTranslation("commons")(Loading);
diff --git a/scm-ui/ui-components/src/Logo.tsx b/scm-ui/ui-components/src/Logo.tsx
index 71a0ed746d..13c445c7b2 100644
--- a/scm-ui/ui-components/src/Logo.tsx
+++ b/scm-ui/ui-components/src/Logo.tsx
@@ -1,16 +1,12 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import Image from "./Image";
-type Props = {
- t: (p: string) => string;
-};
-
-class Logo extends React.Component {
+class Logo extends React.Component {
render() {
const { t } = this.props;
return ;
}
}
-export default translate("commons")(Logo);
+export default withTranslation("commons")(Logo);
diff --git a/scm-ui/ui-components/src/Paginator.tsx b/scm-ui/ui-components/src/Paginator.tsx
index 3a04e1d6b3..907a922ee2 100644
--- a/scm-ui/ui-components/src/Paginator.tsx
+++ b/scm-ui/ui-components/src/Paginator.tsx
@@ -1,12 +1,11 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { PagedCollection, Link } from "@scm-manager/ui-types";
import { Button } from "./buttons";
-type Props = {
+type Props = WithTranslation & {
collection: PagedCollection;
onPageChange?: (p: string) => void;
- t: (p: string) => string;
};
class Paginator extends React.Component {
@@ -108,4 +107,4 @@ class Paginator extends React.Component {
);
}
}
-export default translate("commons")(Paginator);
+export default withTranslation("commons")(Paginator);
diff --git a/scm-ui/ui-components/src/StatePaginator.tsx b/scm-ui/ui-components/src/StatePaginator.tsx
index 484699cfe2..bb471fb3a4 100644
--- a/scm-ui/ui-components/src/StatePaginator.tsx
+++ b/scm-ui/ui-components/src/StatePaginator.tsx
@@ -1,15 +1,12 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { PagedCollection } from "@scm-manager/ui-types";
import { Button } from "./index";
-type Props = {
+type Props = WithTranslation & {
collection: PagedCollection;
page: number;
updatePage: (p: number) => void;
-
- // context props
- t: (p: string) => string;
};
class StatePaginator extends React.Component {
@@ -123,4 +120,4 @@ class StatePaginator extends React.Component {
);
}
}
-export default translate("commons")(StatePaginator);
+export default withTranslation("commons")(StatePaginator);
diff --git a/scm-ui/ui-components/src/UserAutocomplete.tsx b/scm-ui/ui-components/src/UserAutocomplete.tsx
index a22030bbe4..d5a8d0f5e1 100644
--- a/scm-ui/ui-components/src/UserAutocomplete.tsx
+++ b/scm-ui/ui-components/src/UserAutocomplete.tsx
@@ -1,14 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import AutocompleteProps from "./UserGroupAutocomplete";
import UserGroupAutocomplete from "./UserGroupAutocomplete";
-type Props = AutocompleteProps & {
- // Context props
- t: (p: string) => string;
-};
-
-class UserAutocomplete extends React.Component {
+class UserAutocomplete extends React.Component {
render() {
const { t } = this.props;
return (
@@ -23,4 +18,4 @@ class UserAutocomplete extends React.Component {
}
}
-export default translate("commons")(UserAutocomplete);
+export default withTranslation("commons")(UserAutocomplete);
diff --git a/scm-ui/ui-components/src/config/Configuration.tsx b/scm-ui/ui-components/src/config/Configuration.tsx
index 02f86f7b84..967feabb2b 100644
--- a/scm-ui/ui-components/src/config/Configuration.tsx
+++ b/scm-ui/ui-components/src/config/Configuration.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Links, Link } from "@scm-manager/ui-types";
import { apiClient, SubmitButton, Loading, ErrorNotification } from "../";
import { FormEvent } from "react";
@@ -10,12 +10,9 @@ type RenderProps = {
onConfigurationChange: (p1: ConfigurationType, p2: boolean) => void;
};
-type Props = {
+type Props = WithTranslation & {
link: string;
render: (props: RenderProps) => any; // ???
-
- // context props
- t: (p: string) => string;
};
type ConfigurationType = {
@@ -190,4 +187,4 @@ class Configuration extends React.Component {
}
}
-export default translate("config")(Configuration);
+export default withTranslation("config")(Configuration);
diff --git a/scm-ui/ui-components/src/config/ConfigurationBinder.tsx b/scm-ui/ui-components/src/config/ConfigurationBinder.tsx
index 2ce5eee2f1..f2e3669a5e 100644
--- a/scm-ui/ui-components/src/config/ConfigurationBinder.tsx
+++ b/scm-ui/ui-components/src/config/ConfigurationBinder.tsx
@@ -2,7 +2,7 @@ import React from "react";
import { binder } from "@scm-manager/ui-extensions";
import { NavLink } from "../navigation";
import { Route } from "react-router-dom";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Repository, Links, Link } from "@scm-manager/ui-types";
type GlobalRouteProps = {
@@ -15,6 +15,8 @@ type RepositoryRouteProps = {
repository: Repository;
};
+type RepositoryNavProps = WithTranslation & { url: string };
+
class ConfigurationBinder {
i18nNamespace = "plugins";
@@ -34,7 +36,7 @@ class ConfigurationBinder {
};
// create NavigationLink with translated label
- const ConfigNavLink = translate(this.i18nNamespace)(({ t }) => {
+ const ConfigNavLink = withTranslation(this.i18nNamespace)(({ t }) => {
return this.navLink("/admin/settings" + to, labelI18nKey, t);
});
@@ -64,7 +66,7 @@ class ConfigurationBinder {
};
// create NavigationLink with translated label
- const RepoNavLink = translate(this.i18nNamespace)(({ t, url }) => {
+ const RepoNavLink = withTranslation(this.i18nNamespace)(({ t, url }: RepositoryNavProps) => {
return this.navLink(url + to, labelI18nKey, t);
});
@@ -94,7 +96,7 @@ class ConfigurationBinder {
};
// create NavigationLink with translated label
- const RepoNavLink = translate(this.i18nNamespace)(({ t, url }) => {
+ const RepoNavLink = withTranslation(this.i18nNamespace)(({ t, url }: RepositoryNavProps) => {
return this.navLink(url + "/settings" + to, labelI18nKey, t);
});
diff --git a/scm-ui/ui-components/src/forms/FilterInput.tsx b/scm-ui/ui-components/src/forms/FilterInput.tsx
index 9d362cf37c..f789fe1ee0 100644
--- a/scm-ui/ui-components/src/forms/FilterInput.tsx
+++ b/scm-ui/ui-components/src/forms/FilterInput.tsx
@@ -1,14 +1,10 @@
-import React, { ChangeEvent } from "react";
-import { translate } from "react-i18next";
+import React, { ChangeEvent, FormEvent } from "react";
+import { WithTranslation, withTranslation } from "react-i18next";
import styled from "styled-components";
-import { FormEvent } from "react";
-type Props = {
+type Props = WithTranslation & {
filter: (p: string) => void;
value?: string;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -59,4 +55,4 @@ class FilterInput extends React.Component {
}
}
-export default translate("commons")(FilterInput);
+export default withTranslation("commons")(FilterInput);
diff --git a/scm-ui/ui-components/src/forms/MemberNameTagGroup.tsx b/scm-ui/ui-components/src/forms/MemberNameTagGroup.tsx
index 13769454b7..753129bc01 100644
--- a/scm-ui/ui-components/src/forms/MemberNameTagGroup.tsx
+++ b/scm-ui/ui-components/src/forms/MemberNameTagGroup.tsx
@@ -1,14 +1,13 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { DisplayedUser } from "@scm-manager/ui-types";
import TagGroup from "./TagGroup";
-type Props = {
+type Props = WithTranslation & {
members: string[];
memberListChanged: (p: string[]) => void;
label?: string;
helpText?: string;
- t: (p: string) => string;
};
class MemberNameTagGroup extends React.Component {
@@ -39,4 +38,4 @@ class MemberNameTagGroup extends React.Component {
};
}
-export default translate("groups")(MemberNameTagGroup);
+export default withTranslation("groups")(MemberNameTagGroup);
diff --git a/scm-ui/ui-components/src/forms/PasswordConfirmation.tsx b/scm-ui/ui-components/src/forms/PasswordConfirmation.tsx
index 321d7f942f..a90ef7faaa 100644
--- a/scm-ui/ui-components/src/forms/PasswordConfirmation.tsx
+++ b/scm-ui/ui-components/src/forms/PasswordConfirmation.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import InputField from "./InputField";
type State = {
@@ -8,11 +8,9 @@ type State = {
passwordValid: boolean;
passwordConfirmationFailed: boolean;
};
-type Props = {
+type Props = WithTranslation & {
passwordChanged: (p1: string, p2: boolean) => void;
passwordValidator?: (p: string) => boolean;
- // Context props
- t: (p: string) => string;
};
class PasswordConfirmation extends React.Component {
@@ -106,4 +104,4 @@ class PasswordConfirmation extends React.Component {
};
}
-export default translate("commons")(PasswordConfirmation);
+export default withTranslation("commons")(PasswordConfirmation);
diff --git a/scm-ui/ui-components/src/navigation/PrimaryNavigation.tsx b/scm-ui/ui-components/src/navigation/PrimaryNavigation.tsx
index 76c0c27030..42e2a6a52d 100644
--- a/scm-ui/ui-components/src/navigation/PrimaryNavigation.tsx
+++ b/scm-ui/ui-components/src/navigation/PrimaryNavigation.tsx
@@ -1,11 +1,10 @@
import React, { ReactNode } from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import PrimaryNavigationLink from "./PrimaryNavigationLink";
import { Links } from "@scm-manager/ui-types";
import { binder, ExtensionPoint } from "@scm-manager/ui-extensions";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
links: Links;
};
@@ -88,4 +87,4 @@ class PrimaryNavigation extends React.Component {
}
}
-export default translate("commons")(PrimaryNavigation);
+export default withTranslation("commons")(PrimaryNavigation);
diff --git a/scm-ui/ui-components/src/repos/DiffFile.tsx b/scm-ui/ui-components/src/repos/DiffFile.tsx
index fb43f16b6e..0c51a30982 100644
--- a/scm-ui/ui-components/src/repos/DiffFile.tsx
+++ b/scm-ui/ui-components/src/repos/DiffFile.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { translate, InjectedTranslateProps } from "react-i18next";
+import { withTranslation, WithTranslation } from "react-i18next";
import classNames from "classnames";
import styled from "styled-components";
// @ts-ignore
@@ -10,7 +10,7 @@ import Icon from "../Icon";
import { File, Hunk as HunkType, DiffObjectProps } from "./DiffTypes";
type Props = DiffObjectProps &
- InjectedTranslateProps & {
+ WithTranslation & {
file: File;
defaultCollapse?: boolean;
};
@@ -271,4 +271,4 @@ class DiffFile extends React.Component {
}
}
-export default translate("repos")(DiffFile);
+export default withTranslation("repos")(DiffFile);
diff --git a/scm-ui/ui-components/src/repos/changesets/ChangesetAuthor.tsx b/scm-ui/ui-components/src/repos/changesets/ChangesetAuthor.tsx
index 6f607351d2..ed2b63ea2d 100644
--- a/scm-ui/ui-components/src/repos/changesets/ChangesetAuthor.tsx
+++ b/scm-ui/ui-components/src/repos/changesets/ChangesetAuthor.tsx
@@ -1,13 +1,10 @@
import React from "react";
import { Changeset } from "@scm-manager/ui-types";
import { ExtensionPoint } from "@scm-manager/ui-extensions";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
-type Props = {
+type Props = WithTranslation & {
changeset: Changeset;
-
- // context props
- t: (p: string) => string;
};
class ChangesetAuthor extends React.Component {
@@ -50,4 +47,4 @@ class ChangesetAuthor extends React.Component {
}
}
-export default translate("repos")(ChangesetAuthor);
+export default withTranslation("repos")(ChangesetAuthor);
diff --git a/scm-ui/ui-components/src/repos/changesets/ChangesetButtonGroup.tsx b/scm-ui/ui-components/src/repos/changesets/ChangesetButtonGroup.tsx
index 674f59db69..712aabb35e 100644
--- a/scm-ui/ui-components/src/repos/changesets/ChangesetButtonGroup.tsx
+++ b/scm-ui/ui-components/src/repos/changesets/ChangesetButtonGroup.tsx
@@ -2,14 +2,11 @@ import React from "react";
import { Changeset, Repository } from "@scm-manager/ui-types";
import { ButtonAddons, Button } from "../../buttons";
import { createChangesetLink, createSourcesLink } from "./changesets";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
changeset: Changeset;
-
- // context props
- t: (p: string) => string;
};
class ChangesetButtonGroup extends React.Component {
@@ -26,4 +23,4 @@ class ChangesetButtonGroup extends React.Component {
}
}
-export default translate("repos")(ChangesetButtonGroup);
+export default withTranslation("repos")(ChangesetButtonGroup);
diff --git a/scm-ui/ui-components/src/repos/changesets/ChangesetDiff.tsx b/scm-ui/ui-components/src/repos/changesets/ChangesetDiff.tsx
index 18b4d8f924..78f4e90cb3 100644
--- a/scm-ui/ui-components/src/repos/changesets/ChangesetDiff.tsx
+++ b/scm-ui/ui-components/src/repos/changesets/ChangesetDiff.tsx
@@ -2,14 +2,11 @@ import React from "react";
import { Changeset, Link } from "@scm-manager/ui-types";
import LoadingDiff from "../LoadingDiff";
import Notification from "../../Notification";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
-type Props = {
+type Props = WithTranslation & {
changeset: Changeset;
defaultCollapse?: boolean;
-
- // context props
- t: (p: string) => string;
};
class ChangesetDiff extends React.Component {
@@ -36,4 +33,4 @@ class ChangesetDiff extends React.Component {
}
}
-export default translate("repos")(ChangesetDiff);
+export default withTranslation("repos")(ChangesetDiff);
diff --git a/scm-ui/ui-components/src/repos/changesets/ChangesetRow.tsx b/scm-ui/ui-components/src/repos/changesets/ChangesetRow.tsx
index 38045b1df4..43ff97d20c 100644
--- a/scm-ui/ui-components/src/repos/changesets/ChangesetRow.tsx
+++ b/scm-ui/ui-components/src/repos/changesets/ChangesetRow.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { Interpolate, translate } from "react-i18next";
+import { Trans, WithTranslation, withTranslation } from "react-i18next";
import classNames from "classnames";
import styled from "styled-components";
import { ExtensionPoint } from "@scm-manager/ui-extensions";
@@ -12,12 +12,9 @@ import ChangesetAuthor from "./ChangesetAuthor";
import ChangesetTags from "./ChangesetTags";
import ChangesetButtonGroup from "./ChangesetButtonGroup";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
changeset: Changeset;
-
- // context props
- t: (p: string) => string;
};
const Wrapper = styled.div`
@@ -98,10 +95,10 @@ class ChangesetRow extends React.Component {
-
+
-
+
@@ -131,4 +128,4 @@ class ChangesetRow extends React.Component {
}
}
-export default translate("repos")(ChangesetRow);
+export default withTranslation("repos")(ChangesetRow);
diff --git a/scm-ui/ui-components/src/repos/changesets/ChangesetTagsCollapsed.tsx b/scm-ui/ui-components/src/repos/changesets/ChangesetTagsCollapsed.tsx
index d5eca1561a..30549d6fc7 100644
--- a/scm-ui/ui-components/src/repos/changesets/ChangesetTagsCollapsed.tsx
+++ b/scm-ui/ui-components/src/repos/changesets/ChangesetTagsCollapsed.tsx
@@ -1,14 +1,11 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Tag } from "@scm-manager/ui-types";
import Tooltip from "../../Tooltip";
import ChangesetTagBase from "./ChangesetTagBase";
-type Props = {
+type Props = WithTranslation & {
tags: Tag[];
-
- // context props
- t: (p: string) => string;
};
class ChangesetTagsCollapsed extends React.Component {
@@ -23,4 +20,4 @@ class ChangesetTagsCollapsed extends React.Component {
}
}
-export default translate("repos")(ChangesetTagsCollapsed);
+export default withTranslation("repos")(ChangesetTagsCollapsed);
diff --git a/scm-ui/ui-webapp/src/admin/components/form/BaseUrlSettings.tsx b/scm-ui/ui-webapp/src/admin/components/form/BaseUrlSettings.tsx
index 0042f863fd..abf8f36fb0 100644
--- a/scm-ui/ui-webapp/src/admin/components/form/BaseUrlSettings.tsx
+++ b/scm-ui/ui-webapp/src/admin/components/form/BaseUrlSettings.tsx
@@ -1,11 +1,10 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Checkbox, InputField, Subtitle } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
baseUrl: string;
forceBaseUrl: boolean;
- t: (p: string) => string;
onChange: (p1: boolean, p2: any, p3: string) => void;
hasUpdatePermission: boolean;
};
@@ -49,4 +48,4 @@ class BaseUrlSettings extends React.Component {
};
}
-export default translate("config")(BaseUrlSettings);
+export default withTranslation("config")(BaseUrlSettings);
diff --git a/scm-ui/ui-webapp/src/admin/components/form/ConfigForm.tsx b/scm-ui/ui-webapp/src/admin/components/form/ConfigForm.tsx
index f820777208..f7f8f67659 100644
--- a/scm-ui/ui-webapp/src/admin/components/form/ConfigForm.tsx
+++ b/scm-ui/ui-webapp/src/admin/components/form/ConfigForm.tsx
@@ -1,21 +1,19 @@
import React from "react";
-import { translate } from "react-i18next";
-import { SubmitButton, Notification } from "@scm-manager/ui-components";
+import { WithTranslation, withTranslation } from "react-i18next";
import { NamespaceStrategies, Config } from "@scm-manager/ui-types";
+import { SubmitButton, Notification } from "@scm-manager/ui-components";
import ProxySettings from "./ProxySettings";
import GeneralSettings from "./GeneralSettings";
import BaseUrlSettings from "./BaseUrlSettings";
import LoginAttempt from "./LoginAttempt";
-type Props = {
+type Props = WithTranslation & {
submitForm: (p: Config) => void;
config?: Config;
loading?: boolean;
configReadPermission: boolean;
configUpdatePermission: boolean;
namespaceStrategies?: NamespaceStrategies;
- // context props
- t: (p: string) => string;
};
type State = {
@@ -189,4 +187,4 @@ class ConfigForm extends React.Component {
};
}
-export default translate("config")(ConfigForm);
+export default withTranslation("config")(ConfigForm);
diff --git a/scm-ui/ui-webapp/src/admin/components/form/GeneralSettings.tsx b/scm-ui/ui-webapp/src/admin/components/form/GeneralSettings.tsx
index fe9d6191d4..4eb7d96142 100644
--- a/scm-ui/ui-webapp/src/admin/components/form/GeneralSettings.tsx
+++ b/scm-ui/ui-webapp/src/admin/components/form/GeneralSettings.tsx
@@ -1,10 +1,10 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Checkbox, InputField } from "@scm-manager/ui-components";
import { NamespaceStrategies } from "@scm-manager/ui-types";
import NamespaceStrategySelect from "./NamespaceStrategySelect";
-type Props = {
+type Props = WithTranslation & {
realmDescription: string;
loginInfoUrl: string;
disableGroupingGrid: boolean;
@@ -17,8 +17,6 @@ type Props = {
namespaceStrategies?: NamespaceStrategies;
onChange: (p1: boolean, p2: any, p3: string) => void;
hasUpdatePermission: boolean;
- // context props
- t: (p: string) => string;
};
class GeneralSettings extends React.Component {
@@ -122,4 +120,4 @@ class GeneralSettings extends React.Component {
};
}
-export default translate("config")(GeneralSettings);
+export default withTranslation("config")(GeneralSettings);
diff --git a/scm-ui/ui-webapp/src/admin/components/form/LoginAttempt.tsx b/scm-ui/ui-webapp/src/admin/components/form/LoginAttempt.tsx
index 0474f922ae..6ea1834a09 100644
--- a/scm-ui/ui-webapp/src/admin/components/form/LoginAttempt.tsx
+++ b/scm-ui/ui-webapp/src/admin/components/form/LoginAttempt.tsx
@@ -1,11 +1,10 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { InputField, Subtitle, validation as validator } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
loginAttemptLimit: number;
loginAttemptLimitTimeout: number;
- t: (p: string) => string;
onChange: (p1: boolean, p2: any, p3: string) => void;
hasUpdatePermission: boolean;
};
@@ -76,4 +75,4 @@ class LoginAttempt extends React.Component {
};
}
-export default translate("config")(LoginAttempt);
+export default withTranslation("config")(LoginAttempt);
diff --git a/scm-ui/ui-webapp/src/admin/components/form/NamespaceStrategySelect.tsx b/scm-ui/ui-webapp/src/admin/components/form/NamespaceStrategySelect.tsx
index 33699870d1..b6c8da6cb5 100644
--- a/scm-ui/ui-webapp/src/admin/components/form/NamespaceStrategySelect.tsx
+++ b/scm-ui/ui-webapp/src/admin/components/form/NamespaceStrategySelect.tsx
@@ -1,17 +1,15 @@
import React from "react";
-import { translate, TFunction } from "react-i18next";
-import { Select } from "@scm-manager/ui-components";
+import { withTranslation, WithTranslation } from "react-i18next";
import { NamespaceStrategies } from "@scm-manager/ui-types";
+import { Select } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
namespaceStrategies: NamespaceStrategies;
label: string;
value?: string;
disabled?: boolean;
helpText?: string;
onChange: (value: string, name?: string) => void;
- // context props
- t: TFunction;
};
class NamespaceStrategySelect extends React.Component {
@@ -59,4 +57,4 @@ class NamespaceStrategySelect extends React.Component {
}
}
-export default translate("plugins")(NamespaceStrategySelect);
+export default withTranslation("plugins")(NamespaceStrategySelect);
diff --git a/scm-ui/ui-webapp/src/admin/components/form/ProxySettings.tsx b/scm-ui/ui-webapp/src/admin/components/form/ProxySettings.tsx
index 306b1d3f87..971f630dc5 100644
--- a/scm-ui/ui-webapp/src/admin/components/form/ProxySettings.tsx
+++ b/scm-ui/ui-webapp/src/admin/components/form/ProxySettings.tsx
@@ -1,16 +1,15 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Checkbox, InputField, Subtitle, AddEntryToTableField } from "@scm-manager/ui-components";
import ProxyExcludesTable from "../table/ProxyExcludesTable";
-type Props = {
+type Props = WithTranslation & {
proxyPassword: string;
proxyPort: number;
proxyServer: string;
proxyUser: string;
enableProxy: boolean;
proxyExcludes: string[];
- t: (p: string) => string;
onChange: (p1: boolean, p2: any, p3: string) => void;
hasUpdatePermission: boolean;
};
@@ -131,4 +130,4 @@ class ProxySettings extends React.Component {
};
}
-export default translate("config")(ProxySettings);
+export default withTranslation("config")(ProxySettings);
diff --git a/scm-ui/ui-webapp/src/admin/components/table/ProxyExcludesTable.tsx b/scm-ui/ui-webapp/src/admin/components/table/ProxyExcludesTable.tsx
index a934ef8a15..60eb291523 100644
--- a/scm-ui/ui-webapp/src/admin/components/table/ProxyExcludesTable.tsx
+++ b/scm-ui/ui-webapp/src/admin/components/table/ProxyExcludesTable.tsx
@@ -1,10 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import ArrayConfigTable from "./ArrayConfigTable";
-type Props = {
+type Props = WithTranslation & {
proxyExcludes: string[];
- t: (p: string) => string;
onChange: (p1: boolean, p2: any, p3: string) => void;
disabled: boolean;
};
@@ -31,4 +30,4 @@ class ProxyExcludesTable extends React.Component {
};
}
-export default translate("config")(ProxyExcludesTable);
+export default withTranslation("config")(ProxyExcludesTable);
diff --git a/scm-ui/ui-webapp/src/admin/containers/Admin.tsx b/scm-ui/ui-webapp/src/admin/containers/Admin.tsx
index 3360a212bd..7227725843 100644
--- a/scm-ui/ui-webapp/src/admin/containers/Admin.tsx
+++ b/scm-ui/ui-webapp/src/admin/containers/Admin.tsx
@@ -1,10 +1,10 @@
import React from "react";
-import { translate } from "react-i18next";
-import { Redirect, Route, Switch } from "react-router-dom";
-import { ExtensionPoint } from "@scm-manager/ui-extensions";
-import { History } from "history";
import { connect } from "react-redux";
import { compose } from "redux";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { Redirect, Route, Switch } from "react-router-dom";
+import { History } from "history";
+import { ExtensionPoint } from "@scm-manager/ui-extensions";
import { Links } from "@scm-manager/ui-types";
import { Page, Navigation, NavLink, Section, SubNavigation } from "@scm-manager/ui-components";
import { getLinks, getAvailablePluginsLink, getInstalledPluginsLink } from "../../modules/indexResource";
@@ -15,13 +15,12 @@ import RepositoryRoles from "../roles/containers/RepositoryRoles";
import SingleRepositoryRole from "../roles/containers/SingleRepositoryRole";
import CreateRepositoryRole from "../roles/containers/CreateRepositoryRole";
-type Props = {
+type Props = WithTranslation & {
links: Links;
availablePluginsLink: string;
installedPluginsLink: string;
// context objects
- t: (p: string) => string;
match: any;
history: History;
};
@@ -150,5 +149,5 @@ const mapStateToProps = (state: any) => {
export default compose(
connect(mapStateToProps),
- translate("admin")
+ withTranslation("admin")
)(Admin);
diff --git a/scm-ui/ui-webapp/src/admin/containers/AdminDetails.tsx b/scm-ui/ui-webapp/src/admin/containers/AdminDetails.tsx
index 82b7f66cfd..a93483da04 100644
--- a/scm-ui/ui-webapp/src/admin/containers/AdminDetails.tsx
+++ b/scm-ui/ui-webapp/src/admin/containers/AdminDetails.tsx
@@ -1,17 +1,14 @@
import React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import styled from "styled-components";
import { Image, Loading, Subtitle, Title } from "@scm-manager/ui-components";
import { getAppVersion } from "../../modules/indexResource";
-type Props = {
+type Props = WithTranslation & {
loading: boolean;
error: Error;
version: string;
-
- // context props
- t: (p: string) => string;
};
const BoxShadowBox = styled.div`
@@ -86,4 +83,4 @@ const mapStateToProps = (state: any) => {
};
};
-export default connect(mapStateToProps)(translate("admin")(AdminDetails));
+export default connect(mapStateToProps)(withTranslation("admin")(AdminDetails));
diff --git a/scm-ui/ui-webapp/src/admin/containers/GlobalConfig.tsx b/scm-ui/ui-webapp/src/admin/containers/GlobalConfig.tsx
index fa3957eee1..3872205145 100644
--- a/scm-ui/ui-webapp/src/admin/containers/GlobalConfig.tsx
+++ b/scm-ui/ui-webapp/src/admin/containers/GlobalConfig.tsx
@@ -1,6 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { connect } from "react-redux";
+import { Config, NamespaceStrategies } from "@scm-manager/ui-types";
import { Title, Loading, ErrorNotification } from "@scm-manager/ui-components";
+import { getConfigLink } from "../../modules/indexResource";
import {
fetchConfig,
getFetchConfigFailure,
@@ -12,10 +15,7 @@ import {
getModifyConfigFailure,
modifyConfigReset
} from "../modules/config";
-import { connect } from "react-redux";
-import { Config, NamespaceStrategies } from "@scm-manager/ui-types";
import ConfigForm from "../components/form/ConfigForm";
-import { getConfigLink } from "../../modules/indexResource";
import {
fetchNamespaceStrategiesIfNeeded,
getFetchNamespaceStrategiesFailure,
@@ -23,7 +23,7 @@ import {
isFetchNamespaceStrategiesPending
} from "../modules/namespaceStrategies";
-type Props = {
+type Props = WithTranslation & {
loading: boolean;
error: Error;
config: Config;
@@ -36,9 +36,6 @@ type Props = {
fetchConfig: (link: string) => void;
configReset: (p: void) => void;
fetchNamespaceStrategiesIfNeeded: (p: void) => void;
-
- // context objects
- t: (p: string) => string;
};
type State = {
@@ -181,4 +178,4 @@ const mapStateToProps = state => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("config")(GlobalConfig));
+)(withTranslation("config")(GlobalConfig));
diff --git a/scm-ui/ui-webapp/src/admin/plugins/components/CancelPendingActionModal.tsx b/scm-ui/ui-webapp/src/admin/plugins/components/CancelPendingActionModal.tsx
index dbec21b866..b6130a59f7 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/components/CancelPendingActionModal.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/components/CancelPendingActionModal.tsx
@@ -2,15 +2,12 @@ import React from "react";
import PluginActionModal from "./PluginActionModal";
import { PendingPlugins } from "@scm-manager/ui-types";
import { apiClient } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
-type Props = {
+type Props = WithTranslation & {
onClose: () => void;
refresh: () => void;
pendingPlugins: PendingPlugins;
-
- // context props
- t: (p: string) => string;
};
class CancelPendingActionModal extends React.Component {
@@ -37,4 +34,4 @@ class CancelPendingActionModal extends React.Component {
};
}
-export default translate("admin")(CancelPendingActionModal);
+export default withTranslation("admin")(CancelPendingActionModal);
diff --git a/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingAction.tsx b/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingAction.tsx
index 3c0c7936af..bf406f9a3a 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingAction.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingAction.tsx
@@ -1,14 +1,11 @@
import React from "react";
-import { Button } from "@scm-manager/ui-components";
+import { WithTranslation, withTranslation } from "react-i18next";
import { PendingPlugins } from "@scm-manager/ui-types";
-import { translate } from "react-i18next";
+import { Button } from "@scm-manager/ui-components";
import ExecutePendingModal from "./ExecutePendingModal";
-type Props = {
+type Props = WithTranslation & {
pendingPlugins: PendingPlugins;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -55,4 +52,4 @@ class ExecutePendingAction extends React.Component {
}
}
-export default translate("admin")(ExecutePendingAction);
+export default withTranslation("admin")(ExecutePendingAction);
diff --git a/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingActionModal.tsx b/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingActionModal.tsx
index 7d5c04b26c..05e2193722 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingActionModal.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingActionModal.tsx
@@ -1,16 +1,13 @@
import React from "react";
-import PluginActionModal from "./PluginActionModal";
+import { WithTranslation, withTranslation } from "react-i18next";
import { PendingPlugins } from "@scm-manager/ui-types";
-import waitForRestart from "./waitForRestart";
import { apiClient, Notification } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
+import waitForRestart from "./waitForRestart";
+import PluginActionModal from "./PluginActionModal";
-type Props = {
+type Props = WithTranslation & {
onClose: () => void;
pendingPlugins: PendingPlugins;
-
- // context props
- t: (p: string) => string;
};
class ExecutePendingActionModal extends React.Component {
@@ -36,4 +33,4 @@ class ExecutePendingActionModal extends React.Component {
};
}
-export default translate("admin")(ExecutePendingActionModal);
+export default withTranslation("admin")(ExecutePendingActionModal);
diff --git a/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingModal.tsx b/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingModal.tsx
index 9d5dc2a482..89b327b8f5 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingModal.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/components/ExecutePendingModal.tsx
@@ -1,16 +1,13 @@
import React from "react";
import { apiClient, Button, ButtonGroup, ErrorNotification, Modal, Notification } from "@scm-manager/ui-components";
import { PendingPlugins } from "@scm-manager/ui-types";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import waitForRestart from "./waitForRestart";
import SuccessNotification from "./SuccessNotification";
-type Props = {
+type Props = WithTranslation & {
onClose: () => void;
pendingPlugins: PendingPlugins;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -167,4 +164,4 @@ class ExecutePendingModal extends React.Component {
}
}
-export default translate("admin")(ExecutePendingModal);
+export default withTranslation("admin")(ExecutePendingModal);
diff --git a/scm-ui/ui-webapp/src/admin/plugins/components/PluginActionModal.tsx b/scm-ui/ui-webapp/src/admin/plugins/components/PluginActionModal.tsx
index 0e3cab816b..8a916a73b6 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/components/PluginActionModal.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/components/PluginActionModal.tsx
@@ -1,10 +1,10 @@
import * as React from "react";
-import { Button, ButtonGroup, ErrorNotification, Modal } from "@scm-manager/ui-components";
+import { WithTranslation, withTranslation } from "react-i18next";
import { PendingPlugins, PluginCollection } from "@scm-manager/ui-types";
-import { translate } from "react-i18next";
+import { Button, ButtonGroup, ErrorNotification, Modal } from "@scm-manager/ui-components";
import SuccessNotification from "./SuccessNotification";
-type Props = {
+type Props = WithTranslation & {
onClose: () => void;
actionType: string;
pendingPlugins?: PendingPlugins;
@@ -15,9 +15,6 @@ type Props = {
label: string;
children?: React.Node;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -199,4 +196,4 @@ class PluginActionModal extends React.Component {
}
}
-export default translate("admin")(PluginActionModal);
+export default withTranslation("admin")(PluginActionModal);
diff --git a/scm-ui/ui-webapp/src/admin/plugins/components/PluginEntry.tsx b/scm-ui/ui-webapp/src/admin/plugins/components/PluginEntry.tsx
index 56f61a4a81..c5afeae3e7 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/components/PluginEntry.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/components/PluginEntry.tsx
@@ -1,6 +1,5 @@
import React from "react";
-import { translate } from "react-i18next";
-import classNames from "classnames";
+import { WithTranslation, withTranslation } from "react-i18next";
import styled from "styled-components";
import { Plugin } from "@scm-manager/ui-types";
import { CardColumn, Icon } from "@scm-manager/ui-components";
@@ -13,12 +12,9 @@ export const PluginAction = {
UNINSTALL: "uninstall"
};
-type Props = {
+type Props = WithTranslation & {
plugin: Plugin;
refresh: () => void;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -173,4 +169,4 @@ class PluginEntry extends React.Component {
}
}
-export default translate("admin")(PluginEntry);
+export default withTranslation("admin")(PluginEntry);
diff --git a/scm-ui/ui-webapp/src/admin/plugins/components/PluginModal.tsx b/scm-ui/ui-webapp/src/admin/plugins/components/PluginModal.tsx
index 3f23738425..1863ce0843 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/components/PluginModal.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/components/PluginModal.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import classNames from "classnames";
import styled from "styled-components";
import { Plugin } from "@scm-manager/ui-types";
@@ -16,14 +16,11 @@ import waitForRestart from "./waitForRestart";
import SuccessNotification from "./SuccessNotification";
import { PluginAction } from "./PluginEntry";
-type Props = {
+type Props = WithTranslation & {
plugin: Plugin;
pluginAction: string;
refresh: () => void;
onClose: () => void;
-
- // context props
- t: (key: string, params?: object) => string;
};
type State = {
@@ -268,4 +265,4 @@ class PluginModal extends React.Component {
}
}
-export default translate("admin")(PluginModal);
+export default withTranslation("admin")(PluginModal);
diff --git a/scm-ui/ui-webapp/src/admin/plugins/components/SuccessNotification.tsx b/scm-ui/ui-webapp/src/admin/plugins/components/SuccessNotification.tsx
index 1bde1f5f7f..8e01e84bbd 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/components/SuccessNotification.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/components/SuccessNotification.tsx
@@ -1,13 +1,8 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Notification } from "@scm-manager/ui-components";
-type Props = {
- // context props
- t: (p: string) => string;
-};
-
-class InstallSuccessNotification extends React.Component {
+class InstallSuccessNotification extends React.Component {
render() {
const { t } = this.props;
return (
@@ -19,4 +14,4 @@ class InstallSuccessNotification extends React.Component {
}
}
-export default translate("admin")(InstallSuccessNotification);
+export default withTranslation("admin")(InstallSuccessNotification);
diff --git a/scm-ui/ui-webapp/src/admin/plugins/components/UpdateAllActionModal.tsx b/scm-ui/ui-webapp/src/admin/plugins/components/UpdateAllActionModal.tsx
index 5f074e8335..f94799cd0f 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/components/UpdateAllActionModal.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/components/UpdateAllActionModal.tsx
@@ -1,16 +1,13 @@
import React from "react";
-import PluginActionModal from "./PluginActionModal";
+import { WithTranslation, withTranslation } from "react-i18next";
import { PluginCollection } from "@scm-manager/ui-types";
import { apiClient } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
+import PluginActionModal from "./PluginActionModal";
-type Props = {
+type Props = WithTranslation & {
onClose: () => void;
refresh: () => void;
installedPlugins: PluginCollection;
-
- // context props
- t: (p: string) => string;
};
class UpdateAllActionModal extends React.Component {
@@ -37,4 +34,4 @@ class UpdateAllActionModal extends React.Component {
};
}
-export default translate("admin")(UpdateAllActionModal);
+export default withTranslation("admin")(UpdateAllActionModal);
diff --git a/scm-ui/ui-webapp/src/admin/plugins/containers/PluginsOverview.tsx b/scm-ui/ui-webapp/src/admin/plugins/containers/PluginsOverview.tsx
index 1788d98e89..ab670c1ba8 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/containers/PluginsOverview.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/containers/PluginsOverview.tsx
@@ -1,6 +1,6 @@
import * as React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { compose } from "redux";
import { PendingPlugins, PluginCollection } from "@scm-manager/ui-types";
import {
@@ -32,7 +32,7 @@ import ExecutePendingActionModal from "../components/ExecutePendingActionModal";
import CancelPendingActionModal from "../components/CancelPendingActionModal";
import UpdateAllActionModal from "../components/UpdateAllActionModal";
-type Props = {
+type Props = WithTranslation & {
loading: boolean;
error: Error;
collection: PluginCollection;
@@ -43,9 +43,6 @@ type Props = {
pendingPluginsLink: string;
pendingPlugins: PendingPlugins;
- // context objects
- t: (key: string, params?: object) => string;
-
// dispatched functions
fetchPluginsByLink: (link: string) => void;
fetchPendingPlugins: (link: string) => void;
@@ -291,7 +288,7 @@ const mapDispatchToProps = dispatch => {
};
export default compose(
- translate("admin"),
+ withTranslation("admin"),
connect(
mapStateToProps,
mapDispatchToProps
diff --git a/scm-ui/ui-webapp/src/admin/roles/components/AvailableVerbs.tsx b/scm-ui/ui-webapp/src/admin/roles/components/AvailableVerbs.tsx
index 33fa6d00de..b230444de5 100644
--- a/scm-ui/ui-webapp/src/admin/roles/components/AvailableVerbs.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/components/AvailableVerbs.tsx
@@ -1,12 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { RepositoryRole } from "@scm-manager/ui-types";
-type Props = {
+type Props = WithTranslation & {
role: RepositoryRole;
-
- // context props
- t: (p: string) => string;
};
class AvailableVerbs extends React.Component {
@@ -31,4 +28,4 @@ class AvailableVerbs extends React.Component {
}
}
-export default translate("plugins")(AvailableVerbs);
+export default withTranslation("plugins")(AvailableVerbs);
diff --git a/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleDetails.tsx b/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleDetails.tsx
index ae8a0e12c0..e4a2a0f05c 100644
--- a/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleDetails.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleDetails.tsx
@@ -1,16 +1,13 @@
import React from "react";
-import { translate } from "react-i18next";
-import { RepositoryRole } from "@scm-manager/ui-types";
+import { WithTranslation, withTranslation } from "react-i18next";
import { ExtensionPoint } from "@scm-manager/ui-extensions";
-import PermissionRoleDetailsTable from "./PermissionRoleDetailsTable";
+import { RepositoryRole } from "@scm-manager/ui-types";
import { Button } from "@scm-manager/ui-components";
+import PermissionRoleDetailsTable from "./PermissionRoleDetailsTable";
-type Props = {
+type Props = WithTranslation & {
role: RepositoryRole;
url: string;
-
- // context props
- t: (p: string) => string;
};
class PermissionRoleDetails extends React.Component {
@@ -42,4 +39,4 @@ class PermissionRoleDetails extends React.Component {
}
}
-export default translate("admin")(PermissionRoleDetails);
+export default withTranslation("admin")(PermissionRoleDetails);
diff --git a/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleDetailsTable.tsx b/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleDetailsTable.tsx
index aab4c2f973..239ed27996 100644
--- a/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleDetailsTable.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleDetailsTable.tsx
@@ -1,13 +1,10 @@
import React from "react";
+import { WithTranslation, withTranslation } from "react-i18next";
import { RepositoryRole } from "@scm-manager/ui-types";
-import { translate } from "react-i18next";
import AvailableVerbs from "./AvailableVerbs";
-type Props = {
+type Props = WithTranslation & {
role: RepositoryRole;
-
- // context props
- t: (p: string) => string;
};
class PermissionRoleDetailsTable extends React.Component {
@@ -34,4 +31,4 @@ class PermissionRoleDetailsTable extends React.Component {
}
}
-export default translate("admin")(PermissionRoleDetailsTable);
+export default withTranslation("admin")(PermissionRoleDetailsTable);
diff --git a/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleTable.tsx b/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleTable.tsx
index d83b6244f0..fe0a7e3435 100644
--- a/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleTable.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/components/PermissionRoleTable.tsx
@@ -1,14 +1,11 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { RepositoryRole } from "@scm-manager/ui-types";
import PermissionRoleRow from "./PermissionRoleRow";
-type Props = {
+type Props = WithTranslation & {
baseUrl: string;
roles: RepositoryRole[];
-
- // context props
- t: (p: string) => string;
};
class PermissionRoleTable extends React.Component {
@@ -31,4 +28,4 @@ class PermissionRoleTable extends React.Component {
}
}
-export default translate("admin")(PermissionRoleTable);
+export default withTranslation("admin")(PermissionRoleTable);
diff --git a/scm-ui/ui-webapp/src/admin/roles/components/SystemRoleTag.tsx b/scm-ui/ui-webapp/src/admin/roles/components/SystemRoleTag.tsx
index 4931bf6f32..bc2b1df27e 100644
--- a/scm-ui/ui-webapp/src/admin/roles/components/SystemRoleTag.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/components/SystemRoleTag.tsx
@@ -1,13 +1,10 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import styled from "styled-components";
import { Tag } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
system?: boolean;
-
- // context props
- t: (p: string) => string;
};
const LeftMarginTag = styled(Tag)`
@@ -26,4 +23,4 @@ class SystemRoleTag extends React.Component {
}
}
-export default translate("admin")(SystemRoleTag);
+export default withTranslation("admin")(SystemRoleTag);
diff --git a/scm-ui/ui-webapp/src/admin/roles/containers/CreateRepositoryRole.tsx b/scm-ui/ui-webapp/src/admin/roles/containers/CreateRepositoryRole.tsx
index cc4558a7db..63ce9d26ec 100644
--- a/scm-ui/ui-webapp/src/admin/roles/containers/CreateRepositoryRole.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/containers/CreateRepositoryRole.tsx
@@ -1,23 +1,20 @@
import React from "react";
-import RepositoryRoleForm from "./RepositoryRoleForm";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { History } from "history";
+import { RepositoryRole } from "@scm-manager/ui-types";
import { ErrorNotification, Subtitle, Title } from "@scm-manager/ui-components";
import { createRole, getCreateRoleFailure, getFetchVerbsFailure, isFetchVerbsPending } from "../modules/roles";
-import { RepositoryRole } from "@scm-manager/ui-types";
import { getRepositoryRolesLink, getRepositoryVerbsLink } from "../../../modules/indexResource";
-import { History } from "history";
+import RepositoryRoleForm from "./RepositoryRoleForm";
-type Props = {
+type Props = WithTranslation & {
repositoryRolesLink: string;
error?: Error;
history: History;
- //dispatch function
+ // dispatch function
addRole: (link: string, role: RepositoryRole, callback?: () => void) => void;
-
- // context objects
- t: (p: string) => string;
};
class CreateRepositoryRole extends React.Component {
@@ -47,7 +44,7 @@ class CreateRepositoryRole extends React.Component {
}
}
-const mapStateToProps = (state, ownProps) => {
+const mapStateToProps = (state) => {
const loading = isFetchVerbsPending(state);
const error = getFetchVerbsFailure(state) || getCreateRoleFailure(state);
const verbsLink = getRepositoryVerbsLink(state);
@@ -72,4 +69,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("admin")(CreateRepositoryRole));
+)(withTranslation("admin")(CreateRepositoryRole));
diff --git a/scm-ui/ui-webapp/src/admin/roles/containers/DeleteRepositoryRole.tsx b/scm-ui/ui-webapp/src/admin/roles/containers/DeleteRepositoryRole.tsx
index ba370dedf2..81a9c93840 100644
--- a/scm-ui/ui-webapp/src/admin/roles/containers/DeleteRepositoryRole.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/containers/DeleteRepositoryRole.tsx
@@ -1,13 +1,13 @@
import React from "react";
-import { translate } from "react-i18next";
-import { RepositoryRole } from "@scm-manager/ui-types";
-import { Subtitle, DeleteButton, confirmAlert, ErrorNotification } from "@scm-manager/ui-components";
import { connect } from "react-redux";
import { withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
import { History } from "history";
+import { RepositoryRole } from "@scm-manager/ui-types";
+import { Subtitle, DeleteButton, confirmAlert, ErrorNotification } from "@scm-manager/ui-components";
import { deleteRole, getDeleteRoleFailure, isDeleteRolePending } from "../modules/roles";
-type Props = {
+type Props = WithTranslation & {
loading: boolean;
error: Error;
role: RepositoryRole;
@@ -16,7 +16,6 @@ type Props = {
// context props
history: History;
- t: (p: string) => string;
};
class DeleteRepositoryRole extends React.Component {
@@ -96,4 +95,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(withRouter(translate("admin")(DeleteRepositoryRole)));
+)(withRouter(withTranslation("admin")(DeleteRepositoryRole)));
diff --git a/scm-ui/ui-webapp/src/admin/roles/containers/EditRepositoryRole.tsx b/scm-ui/ui-webapp/src/admin/roles/containers/EditRepositoryRole.tsx
index d3fe8438bf..f09d5c603e 100644
--- a/scm-ui/ui-webapp/src/admin/roles/containers/EditRepositoryRole.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/containers/EditRepositoryRole.tsx
@@ -1,21 +1,21 @@
import React from "react";
import RepositoryRoleForm from "./RepositoryRoleForm";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { getModifyRoleFailure, isModifyRolePending, modifyRole } from "../modules/roles";
-import { ErrorNotification, Subtitle } from "@scm-manager/ui-components";
+import { ErrorNotification, Subtitle, Loading } from "@scm-manager/ui-components";
import { RepositoryRole } from "@scm-manager/ui-types";
import { History } from "history";
import DeleteRepositoryRole from "./DeleteRepositoryRole";
-type Props = {
+type Props = WithTranslation & {
disabled: boolean;
role: RepositoryRole;
repositoryRolesLink: string;
+ loading?: boolean;
error?: Error;
// context objects
- t: (p: string) => string;
history: History;
//dispatch function
@@ -32,9 +32,11 @@ class EditRepositoryRole extends React.Component {
};
render() {
- const { error, t } = this.props;
+ const { loading, error, t } = this.props;
- if (error) {
+ if (loading) {
+ return ;
+ } else if (error) {
return ;
}
@@ -70,4 +72,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("admin")(EditRepositoryRole));
+)(withTranslation("admin")(EditRepositoryRole));
diff --git a/scm-ui/ui-webapp/src/admin/roles/containers/RepositoryRoleForm.tsx b/scm-ui/ui-webapp/src/admin/roles/containers/RepositoryRoleForm.tsx
index 5b74c81711..f5a9c19549 100644
--- a/scm-ui/ui-webapp/src/admin/roles/containers/RepositoryRoleForm.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/containers/RepositoryRoleForm.tsx
@@ -1,22 +1,19 @@
import React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { RepositoryRole } from "@scm-manager/ui-types";
import { InputField, SubmitButton } from "@scm-manager/ui-components";
-import PermissionCheckbox from "../../../repos/permissions/components/PermissionCheckbox";
-import { fetchAvailableVerbs, getFetchVerbsFailure, getVerbsFromState, isFetchVerbsPending } from "../modules/roles";
import { getRepositoryRolesLink, getRepositoryVerbsLink } from "../../../modules/indexResource";
+import { fetchAvailableVerbs, getFetchVerbsFailure, getVerbsFromState, isFetchVerbsPending } from "../modules/roles";
+import PermissionCheckbox from "../../../repos/permissions/components/PermissionCheckbox";
-type Props = {
+type Props = WithTranslation & {
role?: RepositoryRole;
loading?: boolean;
availableVerbs: string[];
verbsLink: string;
submitForm: (p: RepositoryRole) => void;
- // context objects
- t: (p: string) => string;
-
// dispatch functions
fetchAvailableVerbs: (link: string) => void;
};
@@ -123,7 +120,7 @@ class RepositoryRoleForm extends React.Component {
}
}
-const mapStateToProps = (state, ownProps) => {
+const mapStateToProps = (state) => {
const loading = isFetchVerbsPending(state);
const error = getFetchVerbsFailure(state);
const verbsLink = getRepositoryVerbsLink(state);
@@ -150,4 +147,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("admin")(RepositoryRoleForm));
+)(withTranslation("admin")(RepositoryRoleForm));
diff --git a/scm-ui/ui-webapp/src/admin/roles/containers/RepositoryRoles.tsx b/scm-ui/ui-webapp/src/admin/roles/containers/RepositoryRoles.tsx
index 7a7748f802..5a3aa2618d 100644
--- a/scm-ui/ui-webapp/src/admin/roles/containers/RepositoryRoles.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/containers/RepositoryRoles.tsx
@@ -1,7 +1,7 @@
import React from "react";
import { connect } from "react-redux";
import { withRouter } from "react-router-dom";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { History } from "history";
import { RepositoryRole, PagedCollection } from "@scm-manager/ui-types";
import { Title, Subtitle, Loading, Notification, LinkPaginator, urls, CreateButton } from "@scm-manager/ui-components";
@@ -16,7 +16,7 @@ import {
import PermissionRoleTable from "../components/PermissionRoleTable";
import { getRepositoryRolesLink } from "../../../modules/indexResource";
-type Props = {
+type Props = WithTranslation & {
baseUrl: string;
roles: RepositoryRole[];
loading: boolean;
@@ -27,7 +27,6 @@ type Props = {
rolesLink: string;
// context objects
- t: (p: string) => string;
history: History;
location: any;
@@ -123,5 +122,5 @@ export default withRouter(
connect(
mapStateToProps,
mapDispatchToProps
- )(translate("admin")(RepositoryRoles))
+ )(withTranslation("admin")(RepositoryRoles))
);
diff --git a/scm-ui/ui-webapp/src/admin/roles/containers/SingleRepositoryRole.tsx b/scm-ui/ui-webapp/src/admin/roles/containers/SingleRepositoryRole.tsx
index d1463d2a9a..389eae87c2 100644
--- a/scm-ui/ui-webapp/src/admin/roles/containers/SingleRepositoryRole.tsx
+++ b/scm-ui/ui-webapp/src/admin/roles/containers/SingleRepositoryRole.tsx
@@ -1,18 +1,17 @@
import React from "react";
import { connect } from "react-redux";
-import { Loading, ErrorPage, Title } from "@scm-manager/ui-components";
-import { Route } from "react-router-dom";
+import { Route, withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
import { History } from "history";
-import { translate } from "react-i18next";
-import { RepositoryRole } from "@scm-manager/ui-types";
-import { getRepositoryRolesLink } from "../../../modules/indexResource";
import { ExtensionPoint } from "@scm-manager/ui-extensions";
+import { RepositoryRole } from "@scm-manager/ui-types";
+import { Loading, ErrorPage, Title } from "@scm-manager/ui-components";
+import { getRepositoryRolesLink } from "../../../modules/indexResource";
import { fetchRoleByName, getFetchRoleFailure, getRoleByName, isFetchRolePending } from "../modules/roles";
-import { withRouter } from "react-router-dom";
import PermissionRoleDetail from "../components/PermissionRoleDetails";
import EditRepositoryRole from "./EditRepositoryRole";
-type Props = {
+type Props = WithTranslation & {
roleName: string;
role: RepositoryRole;
loading: boolean;
@@ -24,7 +23,6 @@ type Props = {
fetchRoleByName: (p1: string, p2: string) => void;
// context objects
- t: (p: string) => string;
match: any;
history: History;
};
@@ -107,5 +105,5 @@ export default withRouter(
connect(
mapStateToProps,
mapDispatchToProps
- )(translate("admin")(SingleRepositoryRole))
+ )(withTranslation("admin")(SingleRepositoryRole))
);
diff --git a/scm-ui/ui-webapp/src/components/InfoBox.tsx b/scm-ui/ui-webapp/src/components/InfoBox.tsx
index f6315c358c..8dd295cd3a 100644
--- a/scm-ui/ui-webapp/src/components/InfoBox.tsx
+++ b/scm-ui/ui-webapp/src/components/InfoBox.tsx
@@ -1,16 +1,13 @@
import * as React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import classNames from "classnames";
import styled from "styled-components";
import { InfoItem } from "./InfoItem";
import { Icon } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
type: "plugin" | "feature";
item: InfoItem;
-
- // context props
- t: (p: string) => string;
};
const BottomMarginA = styled.a`
@@ -73,4 +70,4 @@ class InfoBox extends React.Component {
}
}
-export default translate("commons")(InfoBox);
+export default withTranslation("commons")(InfoBox);
diff --git a/scm-ui/ui-webapp/src/components/LoginForm.tsx b/scm-ui/ui-webapp/src/components/LoginForm.tsx
index 880a2b155f..ed292dd7cc 100644
--- a/scm-ui/ui-webapp/src/components/LoginForm.tsx
+++ b/scm-ui/ui-webapp/src/components/LoginForm.tsx
@@ -1,15 +1,12 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import styled from "styled-components";
import { Image, ErrorNotification, InputField, SubmitButton, UnauthorizedError } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
error?: Error;
loading: boolean;
loginHandler: (username: string, password: string) => void;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -106,4 +103,4 @@ class LoginForm extends React.Component {
}
}
-export default translate("commons")(LoginForm);
+export default withTranslation("commons")(LoginForm);
diff --git a/scm-ui/ui-webapp/src/containers/App.tsx b/scm-ui/ui-webapp/src/containers/App.tsx
index 1b8801cc19..76f75c119b 100644
--- a/scm-ui/ui-webapp/src/containers/App.tsx
+++ b/scm-ui/ui-webapp/src/containers/App.tsx
@@ -1,10 +1,9 @@
import React, { Component } from "react";
import Main from "./Main";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { withRouter } from "react-router-dom";
import { fetchMe, getFetchMeFailure, getMe, isAuthenticated, isFetchMePending } from "../modules/auth";
-
import { ErrorPage, Footer, Header, Loading, PrimaryNavigation } from "@scm-manager/ui-components";
import { Links, Me } from "@scm-manager/ui-types";
import {
@@ -14,7 +13,7 @@ import {
isFetchIndexResourcesPending
} from "../modules/indexResource";
-type Props = {
+type Props = WithTranslation & {
me: Me;
authenticated: boolean;
error: Error;
@@ -24,9 +23,6 @@ type Props = {
// dispatcher functions
fetchMe: (link: string) => void;
-
- // context props
- t: (p: string) => string;
};
class App extends Component {
@@ -86,5 +82,5 @@ export default withRouter(
connect(
mapStateToProps,
mapDispatchToProps
- )(translate("commons")(App))
+ )(withTranslation("commons")(App))
);
diff --git a/scm-ui/ui-webapp/src/containers/ChangeUserPassword.tsx b/scm-ui/ui-webapp/src/containers/ChangeUserPassword.tsx
index 014b006128..9b8275aa0e 100644
--- a/scm-ui/ui-webapp/src/containers/ChangeUserPassword.tsx
+++ b/scm-ui/ui-webapp/src/containers/ChangeUserPassword.tsx
@@ -6,13 +6,12 @@ import {
PasswordConfirmation,
SubmitButton
} from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Me } from "@scm-manager/ui-types";
import { changePassword } from "../modules/changePassword";
-type Props = {
+type Props = WithTranslation & {
me: Me;
- t: (p: string) => string;
};
type State = {
@@ -150,4 +149,4 @@ class ChangeUserPassword extends React.Component {
};
}
-export default translate("commons")(ChangeUserPassword);
+export default withTranslation("commons")(ChangeUserPassword);
diff --git a/scm-ui/ui-webapp/src/containers/Index.tsx b/scm-ui/ui-webapp/src/containers/Index.tsx
index 4c5b564aa9..dba46117bf 100644
--- a/scm-ui/ui-webapp/src/containers/Index.tsx
+++ b/scm-ui/ui-webapp/src/containers/Index.tsx
@@ -1,9 +1,8 @@
import React, { Component } from "react";
import App from "./App";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { withRouter } from "react-router-dom";
-
import { Loading, ErrorBoundary } from "@scm-manager/ui-components";
import {
fetchIndexResources,
@@ -16,16 +15,13 @@ import { IndexResources } from "@scm-manager/ui-types";
import ScrollToTop from "./ScrollToTop";
import IndexErrorPage from "./IndexErrorPage";
-type Props = {
+type Props = WithTranslation & {
error: Error;
loading: boolean;
indexResources: IndexResources;
// dispatcher functions
fetchIndexResources: () => void;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -93,5 +89,5 @@ export default withRouter(
connect(
mapStateToProps,
mapDispatchToProps
- )(translate("commons")(Index))
+ )(withTranslation("commons")(Index))
);
diff --git a/scm-ui/ui-webapp/src/containers/IndexErrorPage.tsx b/scm-ui/ui-webapp/src/containers/IndexErrorPage.tsx
index 9a264ca879..995786663a 100644
--- a/scm-ui/ui-webapp/src/containers/IndexErrorPage.tsx
+++ b/scm-ui/ui-webapp/src/containers/IndexErrorPage.tsx
@@ -1,10 +1,9 @@
import React from "react";
-import { translate, TFunction } from "react-i18next";
+import { withTranslation, WithTranslation } from "react-i18next";
import { ErrorPage } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
error: Error;
- t: TFunction;
};
class IndexErrorPage extends React.Component {
@@ -14,4 +13,4 @@ class IndexErrorPage extends React.Component {
}
}
-export default translate("commons")(IndexErrorPage);
+export default withTranslation("commons")(IndexErrorPage);
diff --git a/scm-ui/ui-webapp/src/containers/Login.tsx b/scm-ui/ui-webapp/src/containers/Login.tsx
index 4786eb2b3e..6ad2c5b737 100644
--- a/scm-ui/ui-webapp/src/containers/Login.tsx
+++ b/scm-ui/ui-webapp/src/containers/Login.tsx
@@ -2,7 +2,6 @@ import React from "react";
import { connect } from "react-redux";
import { Redirect, withRouter } from "react-router-dom";
import { compose } from "redux";
-import { translate } from "react-i18next";
import styled from "styled-components";
import { getLoginFailure, isAuthenticated, isLoginPending, login } from "../modules/auth";
import { getLoginInfoLink, getLoginLink } from "../modules/indexResource";
@@ -19,7 +18,6 @@ type Props = {
login: (link: string, username: string, password: string) => void;
// context props
- t: (p: string) => string;
from: any;
location: any;
};
diff --git a/scm-ui/ui-webapp/src/containers/Logout.tsx b/scm-ui/ui-webapp/src/containers/Logout.tsx
index dfedb6b60f..7a1ee0d9ad 100644
--- a/scm-ui/ui-webapp/src/containers/Logout.tsx
+++ b/scm-ui/ui-webapp/src/containers/Logout.tsx
@@ -1,13 +1,13 @@
import React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Redirect } from "react-router-dom";
import { logout, isAuthenticated, isLogoutPending, getLogoutFailure, isRedirecting } from "../modules/auth";
import { Loading, ErrorPage } from "@scm-manager/ui-components";
import { getLogoutLink } from "../modules/indexResource";
-type Props = {
+type Props = WithTranslation & {
authenticated: boolean;
loading: boolean;
redirecting: boolean;
@@ -16,9 +16,6 @@ type Props = {
// dispatcher functions
logout: (link: string) => void;
-
- // context props
- t: (p: string) => string;
};
class Logout extends React.Component {
@@ -62,4 +59,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("commons")(Logout));
+)(withTranslation("commons")(Logout));
diff --git a/scm-ui/ui-webapp/src/containers/Profile.tsx b/scm-ui/ui-webapp/src/containers/Profile.tsx
index a2c12c8152..4b1aab3b5f 100644
--- a/scm-ui/ui-webapp/src/containers/Profile.tsx
+++ b/scm-ui/ui-webapp/src/containers/Profile.tsx
@@ -1,21 +1,19 @@
import React from "react";
-
import { Route, withRouter } from "react-router-dom";
import { getMe } from "../modules/auth";
import { compose } from "redux";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Me } from "@scm-manager/ui-types";
import { ErrorPage, Page, Navigation, SubNavigation, Section, NavLink } from "@scm-manager/ui-components";
import ChangeUserPassword from "./ChangeUserPassword";
import ProfileInfo from "./ProfileInfo";
import { ExtensionPoint } from "@scm-manager/ui-extensions";
-type Props = {
+type Props = WithTranslation & {
me: Me;
// Context props
- t: (p: string) => string;
match: any;
};
type State = {};
@@ -87,7 +85,7 @@ const mapStateToProps = state => {
};
export default compose(
- translate("commons"),
+ withTranslation("commons"),
connect(mapStateToProps),
withRouter
)(Profile);
diff --git a/scm-ui/ui-webapp/src/containers/ProfileInfo.tsx b/scm-ui/ui-webapp/src/containers/ProfileInfo.tsx
index 852d483083..4c69045c38 100644
--- a/scm-ui/ui-webapp/src/containers/ProfileInfo.tsx
+++ b/scm-ui/ui-webapp/src/containers/ProfileInfo.tsx
@@ -1,13 +1,10 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Me } from "@scm-manager/ui-types";
import { MailLink, AvatarWrapper, AvatarImage } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
me: Me;
-
- // Context props
- t: (p: string) => string;
};
class ProfileInfo extends React.Component {
@@ -69,4 +66,4 @@ class ProfileInfo extends React.Component {
}
}
-export default translate("commons")(ProfileInfo);
+export default withTranslation("commons")(ProfileInfo);
diff --git a/scm-ui/ui-webapp/src/groups/components/GroupForm.tsx b/scm-ui/ui-webapp/src/groups/components/GroupForm.tsx
index 0aa9ad1f4b..b0c41df5c8 100644
--- a/scm-ui/ui-webapp/src/groups/components/GroupForm.tsx
+++ b/scm-ui/ui-webapp/src/groups/components/GroupForm.tsx
@@ -1,5 +1,6 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { Group, SelectValue } from "@scm-manager/ui-types";
import {
Subtitle,
AutocompleteAddEntryToTableField,
@@ -9,12 +10,10 @@ import {
Textarea,
Checkbox
} from "@scm-manager/ui-components";
-import { Group, SelectValue } from "@scm-manager/ui-types";
import * as validator from "./groupValidation";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
submitForm: (p: Group) => void;
loading?: boolean;
group?: Group;
@@ -218,4 +217,4 @@ class GroupForm extends React.Component {
};
}
-export default translate("groups")(GroupForm);
+export default withTranslation("groups")(GroupForm);
diff --git a/scm-ui/ui-webapp/src/groups/components/navLinks/EditGroupNavLink.tsx b/scm-ui/ui-webapp/src/groups/components/navLinks/EditGroupNavLink.tsx
index 4f5fde9dcb..29650ab65e 100644
--- a/scm-ui/ui-webapp/src/groups/components/navLinks/EditGroupNavLink.tsx
+++ b/scm-ui/ui-webapp/src/groups/components/navLinks/EditGroupNavLink.tsx
@@ -1,12 +1,11 @@
import React from "react";
import { Group } from "@scm-manager/ui-types";
import { NavLink } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
-type Props = {
+type Props = WithTranslation & {
group: Group;
editUrl: string;
- t: (p: string) => string;
};
class EditGroupNavLink extends React.Component {
@@ -24,4 +23,4 @@ class EditGroupNavLink extends React.Component {
}
}
-export default translate("groups")(EditGroupNavLink);
+export default withTranslation("groups")(EditGroupNavLink);
diff --git a/scm-ui/ui-webapp/src/groups/components/navLinks/SetPermissionsNavLink.tsx b/scm-ui/ui-webapp/src/groups/components/navLinks/SetPermissionsNavLink.tsx
index 513b1f2c8a..5c4d61b069 100644
--- a/scm-ui/ui-webapp/src/groups/components/navLinks/SetPermissionsNavLink.tsx
+++ b/scm-ui/ui-webapp/src/groups/components/navLinks/SetPermissionsNavLink.tsx
@@ -1,10 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Group } from "@scm-manager/ui-types";
import { NavLink } from "@scm-manager/ui-components";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
group: Group;
permissionsUrl: string;
};
@@ -24,4 +23,4 @@ class ChangePermissionNavLink extends React.Component {
};
}
-export default translate("groups")(ChangePermissionNavLink);
+export default withTranslation("groups")(ChangePermissionNavLink);
diff --git a/scm-ui/ui-webapp/src/groups/components/table/Details.tsx b/scm-ui/ui-webapp/src/groups/components/table/Details.tsx
index 40cb21fdf3..e7c0f5a901 100644
--- a/scm-ui/ui-webapp/src/groups/components/table/Details.tsx
+++ b/scm-ui/ui-webapp/src/groups/components/table/Details.tsx
@@ -1,14 +1,11 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Group } from "@scm-manager/ui-types";
import { DateFromNow, Checkbox } from "@scm-manager/ui-components";
import GroupMember from "./GroupMember";
-type Props = {
+type Props = WithTranslation & {
group: Group;
-
- // Context props
- t: (p: string) => string;
};
class Details extends React.Component {
@@ -75,4 +72,4 @@ class Details extends React.Component {
}
}
-export default translate("groups")(Details);
+export default withTranslation("groups")(Details);
diff --git a/scm-ui/ui-webapp/src/groups/components/table/GroupRow.tsx b/scm-ui/ui-webapp/src/groups/components/table/GroupRow.tsx
index 2ba8310ebb..2674811ae1 100644
--- a/scm-ui/ui-webapp/src/groups/components/table/GroupRow.tsx
+++ b/scm-ui/ui-webapp/src/groups/components/table/GroupRow.tsx
@@ -1,14 +1,11 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Link } from "react-router-dom";
import { Group } from "@scm-manager/ui-types";
import { Icon } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
group: Group;
-
- // context props
- t: (p: string) => string;
};
class GroupRow extends React.Component {
@@ -36,4 +33,4 @@ class GroupRow extends React.Component {
}
}
-export default translate("groups")(GroupRow);
+export default withTranslation("groups")(GroupRow);
diff --git a/scm-ui/ui-webapp/src/groups/components/table/GroupTable.tsx b/scm-ui/ui-webapp/src/groups/components/table/GroupTable.tsx
index 526659b25b..019f06fd5c 100644
--- a/scm-ui/ui-webapp/src/groups/components/table/GroupTable.tsx
+++ b/scm-ui/ui-webapp/src/groups/components/table/GroupTable.tsx
@@ -1,10 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import GroupRow from "./GroupRow";
import { Group } from "@scm-manager/ui-types";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
groups: Group[];
};
@@ -29,4 +28,4 @@ class GroupTable extends React.Component {
}
}
-export default translate("groups")(GroupTable);
+export default withTranslation("groups")(GroupTable);
diff --git a/scm-ui/ui-webapp/src/groups/containers/CreateGroup.tsx b/scm-ui/ui-webapp/src/groups/containers/CreateGroup.tsx
index 7a1b87dd1d..5d50de99cf 100644
--- a/scm-ui/ui-webapp/src/groups/containers/CreateGroup.tsx
+++ b/scm-ui/ui-webapp/src/groups/containers/CreateGroup.tsx
@@ -1,16 +1,14 @@
import React from "react";
-
-import { Page } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
-import GroupForm from "../components/GroupForm";
import { connect } from "react-redux";
-import { createGroup, isCreateGroupPending, getCreateGroupFailure, createGroupReset } from "../modules/groups";
-import { Group } from "@scm-manager/ui-types";
+import { WithTranslation, withTranslation } from "react-i18next";
import { History } from "history";
+import { Group } from "@scm-manager/ui-types";
+import { Page } from "@scm-manager/ui-components";
import { getGroupsLink, getUserAutoCompleteLink } from "../../modules/indexResource";
+import { createGroup, isCreateGroupPending, getCreateGroupFailure, createGroupReset } from "../modules/groups";
+import GroupForm from "../components/GroupForm";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
createGroup: (link: string, group: Group, callback?: () => void) => void;
history: History;
loading?: boolean;
@@ -20,9 +18,7 @@ type Props = {
autocompleteLink: string;
};
-type State = {};
-
-class CreateGroup extends React.Component {
+class CreateGroup extends React.Component {
componentDidMount() {
this.props.resetForm();
}
@@ -88,4 +84,4 @@ const mapStateToProps = state => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("groups")(CreateGroup));
+)(withTranslation("groups")(CreateGroup));
diff --git a/scm-ui/ui-webapp/src/groups/containers/DeleteGroup.tsx b/scm-ui/ui-webapp/src/groups/containers/DeleteGroup.tsx
index 1647f9f011..1917eca6a8 100644
--- a/scm-ui/ui-webapp/src/groups/containers/DeleteGroup.tsx
+++ b/scm-ui/ui-webapp/src/groups/containers/DeleteGroup.tsx
@@ -1,13 +1,13 @@
import React from "react";
-import { translate } from "react-i18next";
+import { connect } from "react-redux";
+import { withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { History } from "history";
import { Group } from "@scm-manager/ui-types";
import { Subtitle, DeleteButton, confirmAlert, ErrorNotification } from "@scm-manager/ui-components";
import { deleteGroup, getDeleteGroupFailure, isDeleteGroupPending } from "../modules/groups";
-import { connect } from "react-redux";
-import { withRouter } from "react-router-dom";
-import { History } from "history";
-type Props = {
+type Props = WithTranslation & {
loading: boolean;
error: Error;
group: Group;
@@ -16,7 +16,6 @@ type Props = {
// context props
history: History;
- t: (p: string) => string;
};
export class DeleteGroup extends React.Component {
@@ -96,4 +95,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(withRouter(translate("groups")(DeleteGroup)));
+)(withRouter(withTranslation("groups")(DeleteGroup)));
diff --git a/scm-ui/ui-webapp/src/groups/containers/Groups.tsx b/scm-ui/ui-webapp/src/groups/containers/Groups.tsx
index 0b4bf70af4..23defa8e49 100644
--- a/scm-ui/ui-webapp/src/groups/containers/Groups.tsx
+++ b/scm-ui/ui-webapp/src/groups/containers/Groups.tsx
@@ -1,16 +1,8 @@
import React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { History } from "history";
import { Group, PagedCollection } from "@scm-manager/ui-types";
-import {
- fetchGroupsByPage,
- getGroupsFromState,
- isFetchGroupsPending,
- getFetchGroupsFailure,
- isPermittedToCreateGroups,
- selectListAsCollection
-} from "../modules/groups";
import {
Page,
PageActions,
@@ -20,10 +12,18 @@ import {
urls,
CreateButton
} from "@scm-manager/ui-components";
-import { GroupTable } from "./../components/table";
import { getGroupsLink } from "../../modules/indexResource";
+import {
+ fetchGroupsByPage,
+ getGroupsFromState,
+ isFetchGroupsPending,
+ getFetchGroupsFailure,
+ isPermittedToCreateGroups,
+ selectListAsCollection
+} from "../modules/groups";
+import { GroupTable } from "./../components/table";
-type Props = {
+type Props = WithTranslation & {
groups: Group[];
loading: boolean;
error: Error;
@@ -33,7 +33,6 @@ type Props = {
groupLink: string;
// context objects
- t: (p: string) => string;
history: History;
location: any;
@@ -124,4 +123,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("groups")(Groups));
+)(withTranslation("groups")(Groups));
diff --git a/scm-ui/ui-webapp/src/groups/containers/SingleGroup.tsx b/scm-ui/ui-webapp/src/groups/containers/SingleGroup.tsx
index 3cdab770c7..0eccff38f9 100644
--- a/scm-ui/ui-webapp/src/groups/containers/SingleGroup.tsx
+++ b/scm-ui/ui-webapp/src/groups/containers/SingleGroup.tsx
@@ -1,20 +1,19 @@
import React from "react";
import { connect } from "react-redux";
-import { Page, ErrorPage, Loading, Navigation, SubNavigation, Section, NavLink } from "@scm-manager/ui-components";
import { Route } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { History } from "history";
+import { ExtensionPoint } from "@scm-manager/ui-extensions";
+import { Group } from "@scm-manager/ui-types";
+import { Page, ErrorPage, Loading, Navigation, SubNavigation, Section, NavLink } from "@scm-manager/ui-components";
+import { getGroupsLink } from "../../modules/indexResource";
+import { fetchGroupByName, getGroupByName, isFetchGroupPending, getFetchGroupFailure } from "../modules/groups";
import { Details } from "./../components/table";
import { EditGroupNavLink, SetPermissionsNavLink } from "./../components/navLinks";
-import { Group } from "@scm-manager/ui-types";
-import { History } from "history";
-import { fetchGroupByName, getGroupByName, isFetchGroupPending, getFetchGroupFailure } from "../modules/groups";
-
-import { translate } from "react-i18next";
import EditGroup from "./EditGroup";
-import { getGroupsLink } from "../../modules/indexResource";
import SetPermissions from "../../permissions/components/SetPermissions";
-import { ExtensionPoint } from "@scm-manager/ui-extensions";
-type Props = {
+type Props = WithTranslation & {
name: string;
group: Group;
loading: boolean;
@@ -25,7 +24,6 @@ type Props = {
fetchGroupByName: (p1: string, p2: string) => void;
// context objects
- t: (p: string) => string;
match: any;
history: History;
};
@@ -123,4 +121,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("groups")(SingleGroup));
+)(withTranslation("groups")(SingleGroup));
diff --git a/scm-ui/ui-webapp/src/permissions/components/PermissionCheckbox.tsx b/scm-ui/ui-webapp/src/permissions/components/PermissionCheckbox.tsx
index 7d88d0d7e3..505d65d7d1 100644
--- a/scm-ui/ui-webapp/src/permissions/components/PermissionCheckbox.tsx
+++ b/scm-ui/ui-webapp/src/permissions/components/PermissionCheckbox.tsx
@@ -1,13 +1,12 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Checkbox } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
permission: string;
checked: boolean;
onChange: (value: boolean, name: string) => void;
disabled: boolean;
- t: (p: string) => string;
};
class PermissionCheckbox extends React.Component {
@@ -36,4 +35,4 @@ class PermissionCheckbox extends React.Component {
};
}
-export default translate("plugins")(PermissionCheckbox);
+export default withTranslation("plugins")(PermissionCheckbox);
diff --git a/scm-ui/ui-webapp/src/permissions/components/SetPermissions.tsx b/scm-ui/ui-webapp/src/permissions/components/SetPermissions.tsx
index 99aabdeb1a..e9db6cac17 100644
--- a/scm-ui/ui-webapp/src/permissions/components/SetPermissions.tsx
+++ b/scm-ui/ui-webapp/src/permissions/components/SetPermissions.tsx
@@ -1,6 +1,6 @@
import React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import classNames from "classnames";
import styled from "styled-components";
import { Link } from "@scm-manager/ui-types";
@@ -9,12 +9,9 @@ import { getLink } from "../../modules/indexResource";
import { loadPermissionsForEntity, setPermissions } from "./handlePermissions";
import PermissionCheckbox from "./PermissionCheckbox";
-type Props = {
+type Props = WithTranslation & {
availablePermissionLink: string;
selectedPermissionsLink: Link;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -189,4 +186,4 @@ const mapStateToProps = state => {
};
};
-export default connect(mapStateToProps)(translate("permissions")(SetPermissions));
+export default connect(mapStateToProps)(withTranslation("permissions")(SetPermissions));
diff --git a/scm-ui/ui-webapp/src/repos/branches/components/BranchButtonGroup.tsx b/scm-ui/ui-webapp/src/repos/branches/components/BranchButtonGroup.tsx
index c2fe4fc5d7..782f88cb0c 100644
--- a/scm-ui/ui-webapp/src/repos/branches/components/BranchButtonGroup.tsx
+++ b/scm-ui/ui-webapp/src/repos/branches/components/BranchButtonGroup.tsx
@@ -1,14 +1,11 @@
import React from "react";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Repository, Branch } from "@scm-manager/ui-types";
import { ButtonAddons, Button } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
branch: Branch;
-
- // context props
- t: (p: string) => string;
};
class BranchButtonGroup extends React.Component {
@@ -29,4 +26,4 @@ class BranchButtonGroup extends React.Component {
}
}
-export default translate("repos")(BranchButtonGroup);
+export default withTranslation("repos")(BranchButtonGroup);
diff --git a/scm-ui/ui-webapp/src/repos/branches/components/BranchDetail.tsx b/scm-ui/ui-webapp/src/repos/branches/components/BranchDetail.tsx
index 2b1bcfd91d..0fbcb7b4b9 100644
--- a/scm-ui/ui-webapp/src/repos/branches/components/BranchDetail.tsx
+++ b/scm-ui/ui-webapp/src/repos/branches/components/BranchDetail.tsx
@@ -1,14 +1,12 @@
import React from "react";
import { Repository, Branch } from "@scm-manager/ui-types";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import BranchButtonGroup from "./BranchButtonGroup";
import DefaultBranchTag from "./DefaultBranchTag";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
branch: Branch;
- // context props
- t: (p: string) => string;
};
class BranchDetail extends React.Component {
@@ -28,4 +26,4 @@ class BranchDetail extends React.Component {
}
}
-export default translate("repos")(BranchDetail);
+export default withTranslation("repos")(BranchDetail);
diff --git a/scm-ui/ui-webapp/src/repos/branches/components/BranchForm.tsx b/scm-ui/ui-webapp/src/repos/branches/components/BranchForm.tsx
index bbc9f1f1a4..eecb1942ee 100644
--- a/scm-ui/ui-webapp/src/repos/branches/components/BranchForm.tsx
+++ b/scm-ui/ui-webapp/src/repos/branches/components/BranchForm.tsx
@@ -1,17 +1,16 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Repository, Branch, BranchRequest } from "@scm-manager/ui-types";
import { Select, InputField, SubmitButton, validation as validator } from "@scm-manager/ui-components";
import { orderBranches } from "../util/orderBranches";
-type Props = {
+type Props = WithTranslation & {
submitForm: (p: BranchRequest) => void;
repository: Repository;
branches: Branch[];
loading?: boolean;
transmittedName?: string;
disabled?: boolean;
- t: (p: string) => string;
};
type State = {
@@ -112,4 +111,4 @@ class BranchForm extends React.Component {
};
}
-export default translate("repos")(BranchForm);
+export default withTranslation("repos")(BranchForm);
diff --git a/scm-ui/ui-webapp/src/repos/branches/components/BranchTable.tsx b/scm-ui/ui-webapp/src/repos/branches/components/BranchTable.tsx
index c9fd7d99e1..000e58c2a0 100644
--- a/scm-ui/ui-webapp/src/repos/branches/components/BranchTable.tsx
+++ b/scm-ui/ui-webapp/src/repos/branches/components/BranchTable.tsx
@@ -1,11 +1,10 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import BranchRow from "./BranchRow";
import { Branch } from "@scm-manager/ui-types";
-type Props = {
+type Props = WithTranslation & {
baseUrl: string;
- t: (p: string) => string;
branches: Branch[];
};
@@ -36,4 +35,4 @@ class BranchTable extends React.Component {
}
}
-export default translate("repos")(BranchTable);
+export default withTranslation("repos")(BranchTable);
diff --git a/scm-ui/ui-webapp/src/repos/branches/components/DefaultBranchTag.tsx b/scm-ui/ui-webapp/src/repos/branches/components/DefaultBranchTag.tsx
index 51ff40d78d..d6147daffb 100644
--- a/scm-ui/ui-webapp/src/repos/branches/components/DefaultBranchTag.tsx
+++ b/scm-ui/ui-webapp/src/repos/branches/components/DefaultBranchTag.tsx
@@ -1,13 +1,10 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import styled from "styled-components";
import { Tag } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
defaultBranch?: boolean;
-
- // context props
- t: (p: string) => string;
};
const LeftMarginTag = styled(Tag)`
@@ -26,4 +23,4 @@ class DefaultBranchTag extends React.Component {
}
}
-export default translate("repos")(DefaultBranchTag);
+export default withTranslation("repos")(DefaultBranchTag);
diff --git a/scm-ui/ui-webapp/src/repos/branches/containers/BranchesOverview.tsx b/scm-ui/ui-webapp/src/repos/branches/containers/BranchesOverview.tsx
index 433786338f..1d12a5db60 100644
--- a/scm-ui/ui-webapp/src/repos/branches/containers/BranchesOverview.tsx
+++ b/scm-ui/ui-webapp/src/repos/branches/containers/BranchesOverview.tsx
@@ -1,4 +1,10 @@
import React from "react";
+import { connect } from "react-redux";
+import { compose } from "redux";
+import { withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { Branch, Repository } from "@scm-manager/ui-types";
+import { CreateButton, ErrorNotification, Loading, Notification, Subtitle } from "@scm-manager/ui-components";
import {
fetchBranches,
getBranches,
@@ -7,15 +13,9 @@ import {
isPermittedToCreateBranches
} from "../modules/branches";
import { orderBranches } from "../util/orderBranches";
-import { connect } from "react-redux";
-import { Branch, Repository } from "@scm-manager/ui-types";
-import { compose } from "redux";
-import { translate } from "react-i18next";
-import { withRouter } from "react-router-dom";
-import { CreateButton, ErrorNotification, Loading, Notification, Subtitle } from "@scm-manager/ui-components";
import BranchTable from "../components/BranchTable";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
baseUrl: string;
loading: boolean;
@@ -29,7 +29,6 @@ type Props = {
// Context props
history: any;
match: any;
- t: (p: string) => string;
};
class BranchesOverview extends React.Component {
@@ -101,7 +100,7 @@ const mapDispatchToProps = dispatch => {
};
export default compose(
- translate("repos"),
+ withTranslation("repos"),
withRouter,
connect(
mapStateToProps,
diff --git a/scm-ui/ui-webapp/src/repos/branches/containers/CreateBranch.tsx b/scm-ui/ui-webapp/src/repos/branches/containers/CreateBranch.tsx
index d1e997227b..8ae8640c62 100644
--- a/scm-ui/ui-webapp/src/repos/branches/containers/CreateBranch.tsx
+++ b/scm-ui/ui-webapp/src/repos/branches/containers/CreateBranch.tsx
@@ -1,8 +1,12 @@
import React from "react";
-import { ErrorNotification, Loading, Subtitle } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
-import BranchForm from "../components/BranchForm";
+import { connect } from "react-redux";
+import { withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
+import queryString from "query-string";
+import { History } from "history";
import { Repository, Branch, BranchRequest } from "@scm-manager/ui-types";
+import { ErrorNotification, Loading, Subtitle } from "@scm-manager/ui-components";
+import BranchForm from "../components/BranchForm";
import {
fetchBranches,
getBranches,
@@ -14,12 +18,8 @@ import {
isFetchBranchesPending,
getFetchBranchesFailure
} from "../modules/branches";
-import { History } from "history";
-import { connect } from "react-redux";
-import { withRouter } from "react-router-dom";
-import queryString from "query-string";
-type Props = {
+type Props = WithTranslation & {
loading?: boolean;
error?: Error;
repository: Repository;
@@ -38,7 +38,6 @@ type Props = {
resetForm: (p: Repository) => void;
// context objects
- t: (p: string) => string;
history: History;
location: any;
};
@@ -131,5 +130,5 @@ export default withRouter(
connect(
mapStateToProps,
mapDispatchToProps
- )(translate("repos")(CreateBranch))
+ )(withTranslation("repos")(CreateBranch))
);
diff --git a/scm-ui/ui-webapp/src/repos/components/EditRepoNavLink.tsx b/scm-ui/ui-webapp/src/repos/components/EditRepoNavLink.tsx
index ad242b85d0..f371ee32e9 100644
--- a/scm-ui/ui-webapp/src/repos/components/EditRepoNavLink.tsx
+++ b/scm-ui/ui-webapp/src/repos/components/EditRepoNavLink.tsx
@@ -1,12 +1,11 @@
import React from "react";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Repository } from "@scm-manager/ui-types";
import { NavLink } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
editUrl: string;
- t: (p: string) => string;
};
class EditRepoNavLink extends React.Component {
@@ -24,4 +23,4 @@ class EditRepoNavLink extends React.Component {
}
}
-export default translate("repos")(EditRepoNavLink);
+export default withTranslation("repos")(EditRepoNavLink);
diff --git a/scm-ui/ui-webapp/src/repos/components/PermissionsNavLink.tsx b/scm-ui/ui-webapp/src/repos/components/PermissionsNavLink.tsx
index c49be359b6..16daa8df3d 100644
--- a/scm-ui/ui-webapp/src/repos/components/PermissionsNavLink.tsx
+++ b/scm-ui/ui-webapp/src/repos/components/PermissionsNavLink.tsx
@@ -1,11 +1,10 @@
import React from "react";
-import { NavLink } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Repository } from "@scm-manager/ui-types";
+import { NavLink } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
permissionUrl: string;
- t: (p: string) => string;
repository: Repository;
};
@@ -22,4 +21,4 @@ class PermissionsNavLink extends React.Component {
}
}
-export default translate("repos")(PermissionsNavLink);
+export default withTranslation("repos")(PermissionsNavLink);
diff --git a/scm-ui/ui-webapp/src/repos/components/RepositoryDetailTable.tsx b/scm-ui/ui-webapp/src/repos/components/RepositoryDetailTable.tsx
index 0a1476384f..4a3cdbe916 100644
--- a/scm-ui/ui-webapp/src/repos/components/RepositoryDetailTable.tsx
+++ b/scm-ui/ui-webapp/src/repos/components/RepositoryDetailTable.tsx
@@ -1,12 +1,10 @@
import React from "react";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Repository } from "@scm-manager/ui-types";
import { MailLink, DateFromNow } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
- // context props
- t: (p: string) => string;
};
class RepositoryDetailTable extends React.Component {
@@ -51,4 +49,4 @@ class RepositoryDetailTable extends React.Component {
}
}
-export default translate("repos")(RepositoryDetailTable);
+export default withTranslation("repos")(RepositoryDetailTable);
diff --git a/scm-ui/ui-webapp/src/repos/components/changesets/ChangesetDetails.tsx b/scm-ui/ui-webapp/src/repos/components/changesets/ChangesetDetails.tsx
index 43ec1962c5..7a3c2bdad6 100644
--- a/scm-ui/ui-webapp/src/repos/components/changesets/ChangesetDetails.tsx
+++ b/scm-ui/ui-webapp/src/repos/components/changesets/ChangesetDetails.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { Interpolate, translate } from "react-i18next";
+import { Trans, WithTranslation, withTranslation } from "react-i18next";
import classNames from "classnames";
import styled from "styled-components";
import { ExtensionPoint } from "@scm-manager/ui-extensions";
@@ -17,12 +17,9 @@ import {
Button
} from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
changeset: Changeset;
repository: Repository;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -85,7 +82,7 @@ class ChangesetDetails extends React.Component {
-
+
{this.renderTags()}
@@ -154,4 +151,4 @@ class ChangesetDetails extends React.Component {
};
}
-export default translate("repos")(ChangesetDetails);
+export default withTranslation("repos")(ChangesetDetails);
diff --git a/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx b/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx
index cfefb80683..681b2c91f2 100644
--- a/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx
+++ b/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx
@@ -1,17 +1,16 @@
import React from "react";
-import { translate } from "react-i18next";
-import { Subtitle, InputField, Select, SubmitButton, Textarea } from "@scm-manager/ui-components";
+import { WithTranslation, withTranslation } from "react-i18next";
import { ExtensionPoint } from "@scm-manager/ui-extensions";
import { Repository, RepositoryType } from "@scm-manager/ui-types";
+import { Subtitle, InputField, Select, SubmitButton, Textarea } from "@scm-manager/ui-components";
import * as validator from "./repositoryValidation";
-type Props = {
+type Props = WithTranslation & {
submitForm: (p: Repository) => void;
repository?: Repository;
repositoryTypes: RepositoryType[];
namespaceStrategy: string;
loading?: boolean;
- t: (p: string) => string;
};
type State = {
@@ -54,10 +53,8 @@ class RepositoryForm extends React.Component {
}
isFalsy(value) {
- if (!value) {
- return true;
- }
- return false;
+ return !value;
+
}
isValid = () => {
@@ -236,4 +233,4 @@ class RepositoryForm extends React.Component {
};
}
-export default translate("repos")(RepositoryForm);
+export default withTranslation("repos")(RepositoryForm);
diff --git a/scm-ui/ui-webapp/src/repos/containers/ChangesetView.tsx b/scm-ui/ui-webapp/src/repos/containers/ChangesetView.tsx
index 9fbcf0cae6..b165ceb0ad 100644
--- a/scm-ui/ui-webapp/src/repos/containers/ChangesetView.tsx
+++ b/scm-ui/ui-webapp/src/repos/containers/ChangesetView.tsx
@@ -1,7 +1,9 @@
import React from "react";
import { connect } from "react-redux";
import { withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Changeset, Repository } from "@scm-manager/ui-types";
+import { ErrorPage, Loading } from "@scm-manager/ui-components";
import {
fetchChangesetIfNeeded,
getChangeset,
@@ -9,10 +11,8 @@ import {
isFetchChangesetPending
} from "../modules/changesets";
import ChangesetDetails from "../components/changesets/ChangesetDetails";
-import { translate } from "react-i18next";
-import { ErrorPage, Loading } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
id: string;
changeset: Changeset;
repository: Repository;
@@ -20,7 +20,6 @@ type Props = {
error: Error;
fetchChangesetIfNeeded: (repository: Repository, id: string) => void;
match: any;
- t: (p: string) => string;
};
class ChangesetView extends React.Component {
@@ -68,5 +67,5 @@ export default withRouter(
connect(
mapStateToProps,
mapDispatchToProps
- )(translate("repos")(ChangesetView))
+ )(withTranslation("repos")(ChangesetView))
);
diff --git a/scm-ui/ui-webapp/src/repos/containers/Changesets.tsx b/scm-ui/ui-webapp/src/repos/containers/Changesets.tsx
index 83527d5bd9..05cebb7a01 100644
--- a/scm-ui/ui-webapp/src/repos/containers/Changesets.tsx
+++ b/scm-ui/ui-webapp/src/repos/containers/Changesets.tsx
@@ -1,15 +1,9 @@
import React from "react";
-import { withRouter } from "react-router-dom";
-import { Branch, Changeset, PagedCollection, Repository } from "@scm-manager/ui-types";
-import {
- fetchChangesets,
- getChangesets,
- getFetchChangesetsFailure,
- isFetchChangesetsPending,
- selectListAsCollection
-} from "../modules/changesets";
-
import { connect } from "react-redux";
+import { compose } from "redux";
+import { withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { Branch, Changeset, PagedCollection, Repository } from "@scm-manager/ui-types";
import {
ErrorNotification,
getPageFromMatch,
@@ -18,10 +12,15 @@ import {
Loading,
Notification
} from "@scm-manager/ui-components";
-import { compose } from "redux";
-import { translate } from "react-i18next";
+import {
+ fetchChangesets,
+ getChangesets,
+ getFetchChangesetsFailure,
+ isFetchChangesetsPending,
+ selectListAsCollection
+} from "../modules/changesets";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
branch: Branch;
page: number;
@@ -37,7 +36,6 @@ type Props = {
// context props
match: any;
- t: (p: string) => string;
};
class Changesets extends React.Component {
@@ -121,7 +119,7 @@ const mapStateToProps = (state: any, ownProps: Props) => {
};
export default compose(
- translate("repos"),
+ withTranslation("repos"),
withRouter,
connect(
mapStateToProps,
diff --git a/scm-ui/ui-webapp/src/repos/containers/ChangesetsRoot.tsx b/scm-ui/ui-webapp/src/repos/containers/ChangesetsRoot.tsx
index 27d28028ad..102e02b08e 100644
--- a/scm-ui/ui-webapp/src/repos/containers/ChangesetsRoot.tsx
+++ b/scm-ui/ui-webapp/src/repos/containers/ChangesetsRoot.tsx
@@ -1,19 +1,19 @@
import React from "react";
-import { Branch, Repository } from "@scm-manager/ui-types";
-import { translate } from "react-i18next";
-import { Route, withRouter } from "react-router-dom";
-import Changesets from "./Changesets";
+import { compose } from "redux";
import { connect } from "react-redux";
+import { Route, withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { Branch, Repository } from "@scm-manager/ui-types";
import { BranchSelector, ErrorNotification, Loading } from "@scm-manager/ui-components";
+import Changesets from "./Changesets";
import {
fetchBranches,
getBranches,
getFetchBranchesFailure,
isFetchBranchesPending
} from "../branches/modules/branches";
-import { compose } from "redux";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
baseUrl: string;
selected: string;
@@ -31,7 +31,6 @@ type Props = {
// Context props
history: any; // TODO flow type
match: any;
- t: (p: string) => string;
};
class ChangesetsRoot extends React.Component {
@@ -151,7 +150,7 @@ const mapStateToProps = (state: any, ownProps: Props) => {
export default compose(
withRouter,
- translate("repos"),
+ withTranslation("repos"),
connect(
mapStateToProps,
mapDispatchToProps
diff --git a/scm-ui/ui-webapp/src/repos/containers/Create.tsx b/scm-ui/ui-webapp/src/repos/containers/Create.tsx
index 220eb92048..ec2eca0529 100644
--- a/scm-ui/ui-webapp/src/repos/containers/Create.tsx
+++ b/scm-ui/ui-webapp/src/repos/containers/Create.tsx
@@ -1,17 +1,17 @@
import React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
-import { Page } from "@scm-manager/ui-components";
-import RepositoryForm from "../components/form";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { History } from "history";
import { Repository, RepositoryType, NamespaceStrategies } from "@scm-manager/ui-types";
+import { Page } from "@scm-manager/ui-components";
import {
fetchRepositoryTypesIfNeeded,
getFetchRepositoryTypesFailure,
getRepositoryTypes,
isFetchRepositoryTypesPending
} from "../modules/repositoryTypes";
+import RepositoryForm from "../components/form";
import { createRepo, createRepoReset, getCreateRepoFailure, isCreateRepoPending } from "../modules/repos";
-import { History } from "history";
import { getRepositoriesLink } from "../../modules/indexResource";
import {
fetchNamespaceStrategiesIfNeeded,
@@ -20,7 +20,7 @@ import {
isFetchNamespaceStrategiesPending
} from "../../admin/modules/namespaceStrategies";
-type Props = {
+type Props = WithTranslation & {
repositoryTypes: RepositoryType[];
namespaceStrategies: NamespaceStrategies;
pageLoading: boolean;
@@ -35,7 +35,6 @@ type Props = {
resetForm: () => void;
// context props
- t: (p: string) => string;
history: History;
};
@@ -115,4 +114,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("repos")(Create));
+)(withTranslation("repos")(Create));
diff --git a/scm-ui/ui-webapp/src/repos/containers/DeleteRepo.tsx b/scm-ui/ui-webapp/src/repos/containers/DeleteRepo.tsx
index 322e1caf50..c16cdb5966 100644
--- a/scm-ui/ui-webapp/src/repos/containers/DeleteRepo.tsx
+++ b/scm-ui/ui-webapp/src/repos/containers/DeleteRepo.tsx
@@ -1,13 +1,13 @@
import React from "react";
-import { translate } from "react-i18next";
+import { connect } from "react-redux";
+import { withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { History } from "history";
import { Repository } from "@scm-manager/ui-types";
import { Subtitle, DeleteButton, confirmAlert, ErrorNotification } from "@scm-manager/ui-components";
import { deleteRepo, getDeleteRepoFailure, isDeleteRepoPending } from "../modules/repos";
-import { connect } from "react-redux";
-import { withRouter } from "react-router-dom";
-import { History } from "history";
-type Props = {
+type Props = WithTranslation & {
loading: boolean;
error: Error;
repository: Repository;
@@ -16,7 +16,6 @@ type Props = {
// context props
history: History;
- t: (p: string) => string;
};
class DeleteRepo extends React.Component {
@@ -98,4 +97,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(withRouter(translate("repos")(DeleteRepo)));
+)(withRouter(withTranslation("repos")(DeleteRepo)));
diff --git a/scm-ui/ui-webapp/src/repos/containers/Overview.tsx b/scm-ui/ui-webapp/src/repos/containers/Overview.tsx
index 120e10a00c..0b5b8d01da 100644
--- a/scm-ui/ui-webapp/src/repos/containers/Overview.tsx
+++ b/scm-ui/ui-webapp/src/repos/containers/Overview.tsx
@@ -1,16 +1,9 @@
import React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
-import { History } from "history";
import { withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { History } from "history";
import { RepositoryCollection } from "@scm-manager/ui-types";
-import {
- fetchReposByPage,
- getFetchReposFailure,
- getRepositoryCollection,
- isAbleToCreateRepos,
- isFetchReposPending
-} from "../modules/repos";
import {
Page,
PageActions,
@@ -20,10 +13,17 @@ import {
LinkPaginator,
urls
} from "@scm-manager/ui-components";
-import RepositoryList from "../components/list";
import { getRepositoriesLink } from "../../modules/indexResource";
+import {
+ fetchReposByPage,
+ getFetchReposFailure,
+ getRepositoryCollection,
+ isAbleToCreateRepos,
+ isFetchReposPending
+} from "../modules/repos";
+import RepositoryList from "../components/list";
-type Props = {
+type Props = WithTranslation & {
loading: boolean;
error: Error;
showCreateButton: boolean;
@@ -32,7 +32,6 @@ type Props = {
reposLink: string;
// context props
- t: (p: string) => string;
history: History;
location: any;
@@ -132,4 +131,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("repos")(withRouter(Overview)));
+)(withTranslation("repos")(withRouter(Overview)));
diff --git a/scm-ui/ui-webapp/src/repos/containers/RepositoryRoot.tsx b/scm-ui/ui-webapp/src/repos/containers/RepositoryRoot.tsx
index 950d4bfac6..ba974b3dfa 100644
--- a/scm-ui/ui-webapp/src/repos/containers/RepositoryRoot.tsx
+++ b/scm-ui/ui-webapp/src/repos/containers/RepositoryRoot.tsx
@@ -1,19 +1,17 @@
import React from "react";
-import { fetchRepoByName, getFetchRepoFailure, getRepository, isFetchRepoPending } from "../modules/repos";
-
import { connect } from "react-redux";
import { Redirect, Route, Switch } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { History } from "history";
+import { binder, ExtensionPoint } from "@scm-manager/ui-extensions";
import { Repository } from "@scm-manager/ui-types";
-
import { ErrorPage, Loading, Navigation, NavLink, Page, Section, SubNavigation } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
+import { fetchRepoByName, getFetchRepoFailure, getRepository, isFetchRepoPending } from "../modules/repos";
import RepositoryDetails from "../components/RepositoryDetails";
import EditRepo from "./EditRepo";
import BranchesOverview from "../branches/containers/BranchesOverview";
import CreateBranch from "../branches/containers/CreateBranch";
import Permissions from "../permissions/containers/Permissions";
-
-import { History } from "history";
import EditRepoNavLink from "../components/EditRepoNavLink";
import BranchRoot from "../branches/containers/BranchRoot";
import ChangesetsRoot from "./ChangesetsRoot";
@@ -22,9 +20,8 @@ import PermissionsNavLink from "../components/PermissionsNavLink";
import Sources from "../sources/containers/Sources";
import RepositoryNavLink from "../components/RepositoryNavLink";
import { getLinks, getRepositoriesLink } from "../../modules/indexResource";
-import { binder, ExtensionPoint } from "@scm-manager/ui-extensions";
-type Props = {
+type Props = WithTranslation & {
namespace: string;
name: string;
repository: Repository;
@@ -37,7 +34,6 @@ type Props = {
fetchRepoByName: (link: string, namespace: string, name: string) => void;
// context props
- t: (p: string) => string;
history: History;
match: any;
};
@@ -45,7 +41,6 @@ type Props = {
class RepositoryRoot extends React.Component {
componentDidMount() {
const { fetchRepoByName, namespace, name, repoLink } = this.props;
-
fetchRepoByName(repoLink, namespace, name);
}
@@ -237,4 +232,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("repos")(RepositoryRoot));
+)(withTranslation("repos")(RepositoryRoot));
diff --git a/scm-ui/ui-webapp/src/repos/permissions/components/PermissionCheckbox.tsx b/scm-ui/ui-webapp/src/repos/permissions/components/PermissionCheckbox.tsx
index bd09c923db..2f677d4deb 100644
--- a/scm-ui/ui-webapp/src/repos/permissions/components/PermissionCheckbox.tsx
+++ b/scm-ui/ui-webapp/src/repos/permissions/components/PermissionCheckbox.tsx
@@ -1,9 +1,8 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Checkbox } from "@scm-manager/ui-components";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
disabled: boolean;
name: string;
checked: boolean;
@@ -27,4 +26,4 @@ class PermissionCheckbox extends React.Component {
}
}
-export default translate("plugins")(PermissionCheckbox);
+export default withTranslation("plugins")(PermissionCheckbox);
diff --git a/scm-ui/ui-webapp/src/repos/permissions/components/RoleSelector.tsx b/scm-ui/ui-webapp/src/repos/permissions/components/RoleSelector.tsx
index ce57d9625b..f10a56bbe8 100644
--- a/scm-ui/ui-webapp/src/repos/permissions/components/RoleSelector.tsx
+++ b/scm-ui/ui-webapp/src/repos/permissions/components/RoleSelector.tsx
@@ -1,9 +1,8 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Select } from "@scm-manager/ui-components";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
availableRoles: string[];
handleRoleChange: (p: string) => void;
role: string;
@@ -42,4 +41,4 @@ class RoleSelector extends React.Component {
}
}
-export default translate("repos")(RoleSelector);
+export default withTranslation("repos")(RoleSelector);
diff --git a/scm-ui/ui-webapp/src/repos/permissions/components/buttons/DeletePermissionButton.tsx b/scm-ui/ui-webapp/src/repos/permissions/components/buttons/DeletePermissionButton.tsx
index ae5a816a02..46848778e4 100644
--- a/scm-ui/ui-webapp/src/repos/permissions/components/buttons/DeletePermissionButton.tsx
+++ b/scm-ui/ui-webapp/src/repos/permissions/components/buttons/DeletePermissionButton.tsx
@@ -1,14 +1,13 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Permission } from "@scm-manager/ui-types";
import { confirmAlert } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
permission: Permission;
namespace: string;
repoName: string;
confirmDialog?: boolean;
- t: (p: string) => string;
deletePermission: (permission: Permission, namespace: string, repoName: string) => void;
loading: boolean;
};
@@ -61,4 +60,4 @@ class DeletePermissionButton extends React.Component {
}
}
-export default translate("repos")(DeletePermissionButton);
+export default withTranslation("repos")(DeletePermissionButton);
diff --git a/scm-ui/ui-webapp/src/repos/permissions/containers/AdvancedPermissionsDialog.tsx b/scm-ui/ui-webapp/src/repos/permissions/containers/AdvancedPermissionsDialog.tsx
index 8f3406ef49..aa4d7aaa07 100644
--- a/scm-ui/ui-webapp/src/repos/permissions/containers/AdvancedPermissionsDialog.tsx
+++ b/scm-ui/ui-webapp/src/repos/permissions/containers/AdvancedPermissionsDialog.tsx
@@ -1,17 +1,14 @@
import React from "react";
+import { WithTranslation, withTranslation } from "react-i18next";
import { ButtonGroup, Button, SubmitButton, Modal } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
import PermissionCheckbox from "../components/PermissionCheckbox";
-type Props = {
+type Props = WithTranslation & {
readOnly: boolean;
availableVerbs: string[];
selectedVerbs: string[];
onSubmit: (p: string[]) => void;
onClose: () => void;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -83,4 +80,4 @@ class AdvancedPermissionsDialog extends React.Component {
};
}
-export default translate("repos")(AdvancedPermissionsDialog);
+export default withTranslation("repos")(AdvancedPermissionsDialog);
diff --git a/scm-ui/ui-webapp/src/repos/permissions/containers/CreatePermissionForm.tsx b/scm-ui/ui-webapp/src/repos/permissions/containers/CreatePermissionForm.tsx
index b7595d91fa..ed9c79b65f 100644
--- a/scm-ui/ui-webapp/src/repos/permissions/containers/CreatePermissionForm.tsx
+++ b/scm-ui/ui-webapp/src/repos/permissions/containers/CreatePermissionForm.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { PermissionCollection, PermissionCreateEntry, RepositoryRole, SelectValue } from "@scm-manager/ui-types";
import {
Button,
@@ -15,7 +15,7 @@ import RoleSelector from "../components/RoleSelector";
import AdvancedPermissionsDialog from "./AdvancedPermissionsDialog";
import { findVerbsForRole } from "../modules/permissions";
-type Props = {
+type Props = WithTranslation & {
availableRoles: RepositoryRole[];
availableVerbs: string[];
createPermission: (permission: PermissionCreateEntry) => void;
@@ -23,9 +23,6 @@ type Props = {
currentPermissions: PermissionCollection;
groupAutocompleteLink: string;
userAutocompleteLink: string;
-
- // Context props
- t: (p: string) => string;
};
type State = {
@@ -231,4 +228,4 @@ class CreatePermissionForm extends React.Component {
};
}
-export default translate("repos")(CreatePermissionForm);
+export default withTranslation("repos")(CreatePermissionForm);
diff --git a/scm-ui/ui-webapp/src/repos/permissions/containers/Permissions.tsx b/scm-ui/ui-webapp/src/repos/permissions/containers/Permissions.tsx
index c305e8a7c7..0c937075d9 100644
--- a/scm-ui/ui-webapp/src/repos/permissions/containers/Permissions.tsx
+++ b/scm-ui/ui-webapp/src/repos/permissions/containers/Permissions.tsx
@@ -1,6 +1,6 @@
import React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import {
createPermission,
createPermissionReset,
@@ -35,7 +35,7 @@ import {
getUserAutoCompleteLink
} from "../../../modules/indexResource";
-type Props = {
+type Props = WithTranslation & {
availablePermissions: boolean;
availableRepositoryRoles: RepositoryRole[];
availableVerbs: string[];
@@ -52,7 +52,7 @@ type Props = {
groupAutocompleteLink: string;
userAutocompleteLink: string;
- //dispatch functions
+ // dispatch functions
fetchAvailablePermissionsIfNeeded: (repositoryRolesLink: string, repositoryVerbsLink: string) => void;
fetchPermissions: (link: string, namespace: string, repoName: string) => void;
createPermission: (
@@ -65,8 +65,8 @@ type Props = {
createPermissionReset: (p1: string, p2: string) => void;
modifyPermissionReset: (p1: string, p2: string) => void;
deletePermissionReset: (p1: string, p2: string) => void;
+
// context props
- t: (p: string) => string;
match: any;
history: History;
};
@@ -248,4 +248,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("repos")(Permissions));
+)(withTranslation("repos")(Permissions));
diff --git a/scm-ui/ui-webapp/src/repos/permissions/containers/SinglePermission.tsx b/scm-ui/ui-webapp/src/repos/permissions/containers/SinglePermission.tsx
index 42fef6bc68..4ac49674de 100644
--- a/scm-ui/ui-webapp/src/repos/permissions/containers/SinglePermission.tsx
+++ b/scm-ui/ui-webapp/src/repos/permissions/containers/SinglePermission.tsx
@@ -1,7 +1,7 @@
import React from "react";
import { connect } from "react-redux";
import { History } from "history";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import styled from "styled-components";
import { RepositoryRole, Permission } from "@scm-manager/ui-types";
import { Button, Icon } from "@scm-manager/ui-components";
@@ -16,13 +16,12 @@ import DeletePermissionButton from "../components/buttons/DeletePermissionButton
import RoleSelector from "../components/RoleSelector";
import AdvancedPermissionsDialog from "./AdvancedPermissionsDialog";
-type Props = {
+type Props = WithTranslation & {
availableRepositoryRoles: RepositoryRole[];
availableRepositoryVerbs: string[];
submitForm: (p: Permission) => void;
modifyPermission: (permission: Permission, namespace: string, name: string) => void;
permission: Permission;
- t: (p: string) => string;
namespace: string;
repoName: string;
match: any;
@@ -233,4 +232,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("repos")(SinglePermission));
+)(withTranslation("repos")(SinglePermission));
diff --git a/scm-ui/ui-webapp/src/repos/sources/components/FileTree.tsx b/scm-ui/ui-webapp/src/repos/sources/components/FileTree.tsx
index 02783112e1..575544e1f5 100644
--- a/scm-ui/ui-webapp/src/repos/sources/components/FileTree.tsx
+++ b/scm-ui/ui-webapp/src/repos/sources/components/FileTree.tsx
@@ -2,7 +2,7 @@ import React from "react";
import { compose } from "redux";
import { connect } from "react-redux";
import { withRouter } from "react-router-dom";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import styled from "styled-components";
import { binder } from "@scm-manager/ui-extensions";
import { Repository, File } from "@scm-manager/ui-types";
@@ -10,7 +10,7 @@ import { ErrorNotification, Loading, Notification } from "@scm-manager/ui-compon
import { getFetchSourcesFailure, isFetchSourcesPending, getSources } from "../modules/sources";
import FileTreeLeaf from "./FileTreeLeaf";
-type Props = {
+type Props = WithTranslation & {
loading: boolean;
error: Error;
tree: File;
@@ -20,7 +20,6 @@ type Props = {
baseUrl: string;
// context props
- t: (p: string) => string;
match: any;
};
@@ -142,4 +141,4 @@ const mapStateToProps = (state: any, ownProps: Props) => {
export default compose(
withRouter,
connect(mapStateToProps)
-)(translate("repos")(FileTree));
+)(withTranslation("repos")(FileTree));
diff --git a/scm-ui/ui-webapp/src/repos/sources/components/content/DownloadViewer.tsx b/scm-ui/ui-webapp/src/repos/sources/components/content/DownloadViewer.tsx
index 723f253ba7..3d0263b1d8 100644
--- a/scm-ui/ui-webapp/src/repos/sources/components/content/DownloadViewer.tsx
+++ b/scm-ui/ui-webapp/src/repos/sources/components/content/DownloadViewer.tsx
@@ -1,10 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { File } from "@scm-manager/ui-types";
import { DownloadButton } from "@scm-manager/ui-components";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
file: File;
};
@@ -19,4 +18,4 @@ class DownloadViewer extends React.Component {
}
}
-export default translate("repos")(DownloadViewer);
+export default withTranslation("repos")(DownloadViewer);
diff --git a/scm-ui/ui-webapp/src/repos/sources/components/content/FileButtonAddons.tsx b/scm-ui/ui-webapp/src/repos/sources/components/content/FileButtonAddons.tsx
index 859f5ca8cc..dd52604611 100644
--- a/scm-ui/ui-webapp/src/repos/sources/components/content/FileButtonAddons.tsx
+++ b/scm-ui/ui-webapp/src/repos/sources/components/content/FileButtonAddons.tsx
@@ -1,10 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { ButtonAddons, Button } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
className?: string;
- t: (p: string) => string;
historyIsSelected: boolean;
showHistory: (p: boolean) => void;
};
@@ -46,4 +45,4 @@ class FileButtonAddons extends React.Component {
}
}
-export default translate("repos")(FileButtonAddons);
+export default withTranslation("repos")(FileButtonAddons);
diff --git a/scm-ui/ui-webapp/src/repos/sources/components/content/ImageViewer.tsx b/scm-ui/ui-webapp/src/repos/sources/components/content/ImageViewer.tsx
index 5591b90180..bd536458a6 100644
--- a/scm-ui/ui-webapp/src/repos/sources/components/content/ImageViewer.tsx
+++ b/scm-ui/ui-webapp/src/repos/sources/components/content/ImageViewer.tsx
@@ -1,9 +1,8 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { File } from "@scm-manager/ui-types";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
file: File;
};
@@ -20,4 +19,4 @@ class ImageViewer extends React.Component {
}
}
-export default translate("repos")(ImageViewer);
+export default withTranslation("repos")(ImageViewer);
diff --git a/scm-ui/ui-webapp/src/repos/sources/components/content/SourcecodeViewer.tsx b/scm-ui/ui-webapp/src/repos/sources/components/content/SourcecodeViewer.tsx
index 958210c62b..a8d022047b 100644
--- a/scm-ui/ui-webapp/src/repos/sources/components/content/SourcecodeViewer.tsx
+++ b/scm-ui/ui-webapp/src/repos/sources/components/content/SourcecodeViewer.tsx
@@ -1,11 +1,10 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { apiClient, SyntaxHighlighter } from "@scm-manager/ui-components";
import { File } from "@scm-manager/ui-types";
import { ErrorNotification, Loading } from "@scm-manager/ui-components";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
file: File;
language: string;
};
@@ -85,4 +84,4 @@ export function getContent(url: string) {
});
}
-export default translate("repos")(SourcecodeViewer);
+export default withTranslation("repos")(SourcecodeViewer);
diff --git a/scm-ui/ui-webapp/src/repos/sources/containers/Content.tsx b/scm-ui/ui-webapp/src/repos/sources/containers/Content.tsx
index 8753151fdb..59f93e8453 100644
--- a/scm-ui/ui-webapp/src/repos/sources/containers/Content.tsx
+++ b/scm-ui/ui-webapp/src/repos/sources/containers/Content.tsx
@@ -1,6 +1,6 @@
import React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import classNames from "classnames";
import styled from "styled-components";
import { ExtensionPoint } from "@scm-manager/ui-extensions";
@@ -11,15 +11,12 @@ import FileButtonAddons from "../components/content/FileButtonAddons";
import SourcesView from "./SourcesView";
import HistoryView from "./HistoryView";
-type Props = {
+type Props = WithTranslation & {
loading: boolean;
file: File;
repository: Repository;
revision: string;
path: string;
-
- // context props
- t: (p: string) => string;
};
type State = {
@@ -209,4 +206,4 @@ const mapStateToProps = (state: any, ownProps: Props) => {
};
};
-export default connect(mapStateToProps)(translate("repos")(Content));
+export default connect(mapStateToProps)(withTranslation("repos")(Content));
diff --git a/scm-ui/ui-webapp/src/repos/sources/containers/Sources.tsx b/scm-ui/ui-webapp/src/repos/sources/containers/Sources.tsx
index 922dc6c59d..33626ddcc4 100644
--- a/scm-ui/ui-webapp/src/repos/sources/containers/Sources.tsx
+++ b/scm-ui/ui-webapp/src/repos/sources/containers/Sources.tsx
@@ -1,10 +1,10 @@
import React from "react";
import { connect } from "react-redux";
import { withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Branch, Repository } from "@scm-manager/ui-types";
-import FileTree from "../components/FileTree";
import { BranchSelector, Breadcrumb, ErrorNotification, Loading } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
+import FileTree from "../components/FileTree";
import {
fetchBranches,
getBranches,
@@ -15,7 +15,7 @@ import { compose } from "redux";
import Content from "./Content";
import { fetchSources, isDirectory } from "../modules/sources";
-type Props = {
+type Props = WithTranslation & {
repository: Repository;
loading: boolean;
error: Error;
@@ -33,7 +33,6 @@ type Props = {
history: any;
match: any;
location: any;
- t: (p: string) => string;
};
type State = {
@@ -203,7 +202,7 @@ const mapDispatchToProps = dispatch => {
};
export default compose(
- translate("repos"),
+ withTranslation("repos"),
withRouter,
connect(
mapStateToProps,
diff --git a/scm-ui/ui-webapp/src/users/components/SetUserPassword.tsx b/scm-ui/ui-webapp/src/users/components/SetUserPassword.tsx
index 6f2e1ebb60..f060c7494d 100644
--- a/scm-ui/ui-webapp/src/users/components/SetUserPassword.tsx
+++ b/scm-ui/ui-webapp/src/users/components/SetUserPassword.tsx
@@ -1,12 +1,11 @@
import React from "react";
+import { WithTranslation, withTranslation } from "react-i18next";
import { User } from "@scm-manager/ui-types";
import { SubmitButton, Notification, ErrorNotification, PasswordConfirmation } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
import { setPassword } from "./setPassword";
-type Props = {
+type Props = WithTranslation & {
user: User;
- t: (p: string) => string;
};
type State = {
@@ -128,4 +127,4 @@ class SetUserPassword extends React.Component {
};
}
-export default translate("users")(SetUserPassword);
+export default withTranslation("users")(SetUserPassword);
diff --git a/scm-ui/ui-webapp/src/users/components/UserForm.tsx b/scm-ui/ui-webapp/src/users/components/UserForm.tsx
index 395521fd45..db1fc50ea1 100644
--- a/scm-ui/ui-webapp/src/users/components/UserForm.tsx
+++ b/scm-ui/ui-webapp/src/users/components/UserForm.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { User } from "@scm-manager/ui-types";
import {
Subtitle,
@@ -11,11 +11,10 @@ import {
} from "@scm-manager/ui-components";
import * as userValidator from "./userValidation";
-type Props = {
+type Props = WithTranslation & {
submitForm: (p: User) => void;
user?: User;
loading?: boolean;
- t: (p: string) => string;
};
type State = {
@@ -58,10 +57,7 @@ class UserForm extends React.Component {
}
isFalsy(value) {
- if (!value) {
- return true;
- }
- return false;
+ return !value;
}
createUserComponentsAreInvalid = () => {
@@ -230,4 +226,4 @@ class UserForm extends React.Component {
};
}
-export default translate("users")(UserForm);
+export default withTranslation("users")(UserForm);
diff --git a/scm-ui/ui-webapp/src/users/components/navLinks/EditUserNavLink.tsx b/scm-ui/ui-webapp/src/users/components/navLinks/EditUserNavLink.tsx
index cb552f3bfc..418412c5f8 100644
--- a/scm-ui/ui-webapp/src/users/components/navLinks/EditUserNavLink.tsx
+++ b/scm-ui/ui-webapp/src/users/components/navLinks/EditUserNavLink.tsx
@@ -1,12 +1,11 @@
import React from "react";
+import { WithTranslation, withTranslation } from "react-i18next";
import { User } from "@scm-manager/ui-types";
import { NavLink } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
-type Props = {
+type Props = WithTranslation & {
user: User;
editUrl: string;
- t: (p: string) => string;
};
class EditUserNavLink extends React.Component {
@@ -24,4 +23,4 @@ class EditUserNavLink extends React.Component {
}
}
-export default translate("users")(EditUserNavLink);
+export default withTranslation("users")(EditUserNavLink);
diff --git a/scm-ui/ui-webapp/src/users/components/navLinks/SetPasswordNavLink.tsx b/scm-ui/ui-webapp/src/users/components/navLinks/SetPasswordNavLink.tsx
index b9a9ef5510..8fd3b390f6 100644
--- a/scm-ui/ui-webapp/src/users/components/navLinks/SetPasswordNavLink.tsx
+++ b/scm-ui/ui-webapp/src/users/components/navLinks/SetPasswordNavLink.tsx
@@ -1,10 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { User } from "@scm-manager/ui-types";
import { NavLink } from "@scm-manager/ui-components";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
user: User;
passwordUrl: string;
};
@@ -24,4 +23,4 @@ class ChangePasswordNavLink extends React.Component {
};
}
-export default translate("users")(ChangePasswordNavLink);
+export default withTranslation("users")(ChangePasswordNavLink);
diff --git a/scm-ui/ui-webapp/src/users/components/navLinks/SetPermissionsNavLink.tsx b/scm-ui/ui-webapp/src/users/components/navLinks/SetPermissionsNavLink.tsx
index 917af1a7b3..2fa3b185e9 100644
--- a/scm-ui/ui-webapp/src/users/components/navLinks/SetPermissionsNavLink.tsx
+++ b/scm-ui/ui-webapp/src/users/components/navLinks/SetPermissionsNavLink.tsx
@@ -1,10 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { User } from "@scm-manager/ui-types";
import { NavLink } from "@scm-manager/ui-components";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
user: User;
permissionsUrl: string;
};
@@ -24,4 +23,4 @@ class ChangePermissionNavLink extends React.Component {
};
}
-export default translate("users")(ChangePermissionNavLink);
+export default withTranslation("users")(ChangePermissionNavLink);
diff --git a/scm-ui/ui-webapp/src/users/components/table/Details.tsx b/scm-ui/ui-webapp/src/users/components/table/Details.tsx
index 6b165140e4..3470d0eed4 100644
--- a/scm-ui/ui-webapp/src/users/components/table/Details.tsx
+++ b/scm-ui/ui-webapp/src/users/components/table/Details.tsx
@@ -1,11 +1,10 @@
import React from "react";
+import { WithTranslation, withTranslation } from "react-i18next";
import { User } from "@scm-manager/ui-types";
-import { translate } from "react-i18next";
import { Checkbox, MailLink, DateFromNow } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
user: User;
- t: (p: string) => string;
};
class Details extends React.Component {
@@ -56,4 +55,4 @@ class Details extends React.Component {
}
}
-export default translate("users")(Details);
+export default withTranslation("users")(Details);
diff --git a/scm-ui/ui-webapp/src/users/components/table/UserRow.tsx b/scm-ui/ui-webapp/src/users/components/table/UserRow.tsx
index 4b237da804..17e5230a89 100644
--- a/scm-ui/ui-webapp/src/users/components/table/UserRow.tsx
+++ b/scm-ui/ui-webapp/src/users/components/table/UserRow.tsx
@@ -1,14 +1,11 @@
import React from "react";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { Link } from "react-router-dom";
import { User } from "@scm-manager/ui-types";
import { Icon } from "@scm-manager/ui-components";
-type Props = {
+type Props = WithTranslation & {
user: User;
-
- // context props
- t: (p: string) => string;
};
class UserRow extends React.Component {
@@ -39,4 +36,4 @@ class UserRow extends React.Component {
}
}
-export default translate("users")(UserRow);
+export default withTranslation("users")(UserRow);
diff --git a/scm-ui/ui-webapp/src/users/components/table/UserTable.tsx b/scm-ui/ui-webapp/src/users/components/table/UserTable.tsx
index 93a569c465..118fae4d29 100644
--- a/scm-ui/ui-webapp/src/users/components/table/UserTable.tsx
+++ b/scm-ui/ui-webapp/src/users/components/table/UserTable.tsx
@@ -1,10 +1,9 @@
import React from "react";
-import { translate } from "react-i18next";
-import UserRow from "./UserRow";
+import { WithTranslation, withTranslation } from "react-i18next";
import { User } from "@scm-manager/ui-types";
+import UserRow from "./UserRow";
-type Props = {
- t: (p: string) => string;
+type Props = WithTranslation & {
users: User[];
};
@@ -30,4 +29,4 @@ class UserTable extends React.Component {
}
}
-export default translate("users")(UserTable);
+export default withTranslation("users")(UserTable);
diff --git a/scm-ui/ui-webapp/src/users/containers/CreateUser.tsx b/scm-ui/ui-webapp/src/users/containers/CreateUser.tsx
index cd716421f4..66a48498ed 100644
--- a/scm-ui/ui-webapp/src/users/containers/CreateUser.tsx
+++ b/scm-ui/ui-webapp/src/users/containers/CreateUser.tsx
@@ -1,14 +1,14 @@
import React from "react";
import { connect } from "react-redux";
-import UserForm from "../components/UserForm";
-import { User } from "@scm-manager/ui-types";
+import { WithTranslation, withTranslation } from "react-i18next";
import { History } from "history";
-import { createUser, createUserReset, isCreateUserPending, getCreateUserFailure } from "../modules/users";
+import { User } from "@scm-manager/ui-types";
import { Page } from "@scm-manager/ui-components";
-import { translate } from "react-i18next";
import { getUsersLink } from "../../modules/indexResource";
+import { createUser, createUserReset, isCreateUserPending, getCreateUserFailure } from "../modules/users";
+import UserForm from "../components/UserForm";
-type Props = {
+type Props = WithTranslation & {
loading?: boolean;
error?: Error;
usersLink: string;
@@ -18,7 +18,6 @@ type Props = {
resetForm: () => void;
// context objects
- t: (p: string) => string;
history: History;
};
@@ -72,4 +71,4 @@ const mapStateToProps = (state, ownProps) => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("users")(CreateUser));
+)(withTranslation("users")(CreateUser));
diff --git a/scm-ui/ui-webapp/src/users/containers/DeleteUser.tsx b/scm-ui/ui-webapp/src/users/containers/DeleteUser.tsx
index 281b7420ce..c62ec9f28b 100644
--- a/scm-ui/ui-webapp/src/users/containers/DeleteUser.tsx
+++ b/scm-ui/ui-webapp/src/users/containers/DeleteUser.tsx
@@ -1,13 +1,13 @@
import React from "react";
-import { translate } from "react-i18next";
+import { connect } from "react-redux";
+import { withRouter } from "react-router-dom";
+import { WithTranslation, withTranslation } from "react-i18next";
+import { History } from "history";
import { User } from "@scm-manager/ui-types";
import { Subtitle, DeleteButton, confirmAlert, ErrorNotification } from "@scm-manager/ui-components";
import { deleteUser, getDeleteUserFailure, isDeleteUserPending } from "../modules/users";
-import { connect } from "react-redux";
-import { withRouter } from "react-router-dom";
-import { History } from "history";
-type Props = {
+type Props = WithTranslation & {
loading: boolean;
error: Error;
user: User;
@@ -16,7 +16,6 @@ type Props = {
// context props
history: History;
- t: (p: string) => string;
};
class DeleteUser extends React.Component {
@@ -96,4 +95,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(withRouter(translate("users")(DeleteUser)));
+)(withRouter(withTranslation("users")(DeleteUser)));
diff --git a/scm-ui/ui-webapp/src/users/containers/SingleUser.tsx b/scm-ui/ui-webapp/src/users/containers/SingleUser.tsx
index 45f7552c25..fac65b369c 100644
--- a/scm-ui/ui-webapp/src/users/containers/SingleUser.tsx
+++ b/scm-ui/ui-webapp/src/users/containers/SingleUser.tsx
@@ -1,20 +1,20 @@
import React from "react";
import { connect } from "react-redux";
-import { Page, Loading, Navigation, SubNavigation, Section, NavLink, ErrorPage } from "@scm-manager/ui-components";
import { Route } from "react-router-dom";
+import { History } from "history";
+import { ExtensionPoint } from "@scm-manager/ui-extensions";
+import { User } from "@scm-manager/ui-types";
+import { Page, Loading, Navigation, SubNavigation, Section, NavLink, ErrorPage } from "@scm-manager/ui-components";
import { Details } from "./../components/table";
import EditUser from "./EditUser";
-import { User } from "@scm-manager/ui-types";
-import { History } from "history";
import { fetchUserByName, getUserByName, isFetchUserPending, getFetchUserFailure } from "../modules/users";
import { EditUserNavLink, SetPasswordNavLink, SetPermissionsNavLink } from "./../components/navLinks";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { getUsersLink } from "../../modules/indexResource";
import SetUserPassword from "../components/SetUserPassword";
import SetPermissions from "../../permissions/components/SetPermissions";
-import { ExtensionPoint } from "@scm-manager/ui-extensions";
-type Props = {
+type Props = WithTranslation & {
name: string;
user: User;
loading: boolean;
@@ -25,7 +25,6 @@ type Props = {
fetchUserByName: (p1: string, p2: string) => void;
// context objects
- t: (p: string) => string;
match: any;
history: History;
};
@@ -122,4 +121,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("users")(SingleUser));
+)(withTranslation("users")(SingleUser));
diff --git a/scm-ui/ui-webapp/src/users/containers/Users.tsx b/scm-ui/ui-webapp/src/users/containers/Users.tsx
index 4e9a0c3970..bb97eab1b4 100644
--- a/scm-ui/ui-webapp/src/users/containers/Users.tsx
+++ b/scm-ui/ui-webapp/src/users/containers/Users.tsx
@@ -1,16 +1,8 @@
import React from "react";
import { connect } from "react-redux";
-import { translate } from "react-i18next";
+import { WithTranslation, withTranslation } from "react-i18next";
import { History } from "history";
import { User, PagedCollection } from "@scm-manager/ui-types";
-import {
- fetchUsersByPage,
- getUsersFromState,
- selectListAsCollection,
- isPermittedToCreateUsers,
- isFetchUsersPending,
- getFetchUsersFailure
-} from "../modules/users";
import {
Page,
PageActions,
@@ -20,10 +12,18 @@ import {
urls,
CreateButton
} from "@scm-manager/ui-components";
-import { UserTable } from "./../components/table";
import { getUsersLink } from "../../modules/indexResource";
+import {
+ fetchUsersByPage,
+ getUsersFromState,
+ selectListAsCollection,
+ isPermittedToCreateUsers,
+ isFetchUsersPending,
+ getFetchUsersFailure
+} from "../modules/users";
+import { UserTable } from "./../components/table";
-type Props = {
+type Props = WithTranslation & {
users: User[];
loading: boolean;
error: Error;
@@ -33,7 +33,6 @@ type Props = {
usersLink: string;
// context objects
- t: (p: string) => string;
history: History;
location: any;
@@ -124,4 +123,4 @@ const mapDispatchToProps = dispatch => {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(translate("users")(Users));
+)(withTranslation("users")(Users));