@scm-manager/ui-components 2.30.2-20220102-142809 → 2.30.2-20220102-154612

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scm-manager/ui-components",
3
- "version": "2.30.2-20220102-142809",
3
+ "version": "2.30.2-20220102-154612",
4
4
  "description": "UI Components for SCM-Manager and its plugins",
5
5
  "main": "src/index.ts",
6
6
  "files": [
@@ -25,7 +25,7 @@
25
25
  "@scm-manager/jest-preset": "^2.13.0",
26
26
  "@scm-manager/prettier-config": "^2.10.1",
27
27
  "@scm-manager/tsconfig": "^2.12.0",
28
- "@scm-manager/ui-tests": "^2.30.2-20220102-142809",
28
+ "@scm-manager/ui-tests": "^2.30.2-20220102-154612",
29
29
  "@storybook/addon-actions": "^6.3.12",
30
30
  "@storybook/addon-storyshots": "^6.3.12",
31
31
  "@storybook/builder-webpack5": "^6.3.12",
@@ -66,9 +66,9 @@
66
66
  },
67
67
  "dependencies": {
68
68
  "@headlessui/react": "^1.4.3",
69
- "@scm-manager/ui-api": "^2.30.2-20220102-142809",
70
- "@scm-manager/ui-extensions": "^2.30.2-20220102-142809",
71
- "@scm-manager/ui-types": "^2.30.2-20220102-142809",
69
+ "@scm-manager/ui-api": "^2.30.2-20220102-154612",
70
+ "@scm-manager/ui-extensions": "^2.30.2-20220102-154612",
71
+ "@scm-manager/ui-types": "^2.30.2-20220102-154612",
72
72
  "classnames": "^2.2.6",
73
73
  "date-fns": "^2.4.1",
74
74
  "deepmerge": "^4.2.2",
@@ -21,29 +21,28 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  * SOFTWARE.
23
23
  */
24
- import React from "react";
25
- import { Changeset, Repository } from "@scm-manager/ui-types";
26
- import { ButtonAddons, Button } from "../../buttons";
24
+ import React, { FC } from "react";
25
+ import { Changeset, File, Repository } from "@scm-manager/ui-types";
26
+ import { Button, ButtonAddons } from "../../buttons";
27
27
  import { createChangesetLink, createSourcesLink } from "./changesets";
28
- import { WithTranslation, withTranslation } from "react-i18next";
28
+ import { useTranslation } from "react-i18next";
29
29
 
30
- type Props = WithTranslation & {
30
+ type Props = {
31
31
  repository: Repository;
32
32
  changeset: Changeset;
33
+ file?: File;
33
34
  };
34
35
 
35
- class ChangesetButtonGroup extends React.Component<Props> {
36
- render() {
37
- const { repository, changeset, t } = this.props;
38
- const changesetLink = createChangesetLink(repository, changeset);
39
- const sourcesLink = createSourcesLink(repository, changeset);
40
- return (
41
- <ButtonAddons className="m-0">
42
- <Button link={changesetLink} icon="exchange-alt" label={t("changeset.buttons.details")} reducedMobile={true} />
43
- <Button link={sourcesLink} icon="code" label={t("changeset.buttons.sources")} reducedMobile={true} />
44
- </ButtonAddons>
45
- );
46
- }
47
- }
36
+ const ChangesetButtonGroup: FC<Props> = ({ repository, changeset, file }) => {
37
+ const [t] = useTranslation("repos");
38
+ const changesetLink = createChangesetLink(repository, changeset);
39
+ const sourcesLink = createSourcesLink(repository, changeset, file);
40
+ return (
41
+ <ButtonAddons className="m-0">
42
+ <Button link={changesetLink} icon="exchange-alt" label={t("changeset.buttons.details")} reducedMobile={true} />
43
+ <Button link={sourcesLink} icon="code" label={t("changeset.buttons.sources")} reducedMobile={true} />
44
+ </ButtonAddons>
45
+ );
46
+ };
48
47
 
49
- export default withTranslation("repos")(ChangesetButtonGroup);
48
+ export default ChangesetButtonGroup;
@@ -22,23 +22,20 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
  import ChangesetRow from "./ChangesetRow";
25
- import React from "react";
26
-
27
- import { Changeset, Repository } from "@scm-manager/ui-types";
25
+ import React, { FC } from "react";
26
+ import { Changeset, File, Repository } from "@scm-manager/ui-types";
28
27
 
29
28
  type Props = {
30
29
  repository: Repository;
31
30
  changesets: Changeset[];
31
+ file?: File;
32
32
  };
33
33
 
34
- class ChangesetList extends React.Component<Props> {
35
- render() {
36
- const { repository, changesets } = this.props;
37
- const content = changesets.map((changeset) => {
38
- return <ChangesetRow key={changeset.id} repository={repository} changeset={changeset} />;
39
- });
40
- return <>{content}</>;
41
- }
42
- }
34
+ const ChangesetList: FC<Props> = ({ repository, changesets, file }) => {
35
+ const content = changesets.map(changeset => {
36
+ return <ChangesetRow key={changeset.id} repository={repository} changeset={changeset} file={file} />;
37
+ });
38
+ return <>{content}</>;
39
+ };
43
40
 
44
41
  export default ChangesetList;
@@ -25,13 +25,14 @@ import React, { FC } from "react";
25
25
  import classNames from "classnames";
26
26
  import styled from "styled-components";
27
27
  import { ExtensionPoint } from "@scm-manager/ui-extensions";
28
- import { Changeset, Repository } from "@scm-manager/ui-types";
28
+ import { Changeset, File, Repository } from "@scm-manager/ui-types";
29
29
  import ChangesetButtonGroup from "./ChangesetButtonGroup";
30
30
  import SingleChangeset from "./SingleChangeset";
31
31
 
32
32
  type Props = {
33
33
  repository: Repository;
34
34
  changeset: Changeset;
35
+ file?: File;
35
36
  };
36
37
 
37
38
  const Wrapper = styled.div`
@@ -44,7 +45,7 @@ const Wrapper = styled.div`
44
45
  }
45
46
  `;
46
47
 
47
- const ChangesetRow: FC<Props> = ({ repository, changeset }) => {
48
+ const ChangesetRow: FC<Props> = ({ repository, changeset, file }) => {
48
49
  return (
49
50
  <Wrapper>
50
51
  <div className={classNames("columns", "is-gapless", "is-mobile")}>
@@ -52,12 +53,12 @@ const ChangesetRow: FC<Props> = ({ repository, changeset }) => {
52
53
  <SingleChangeset repository={repository} changeset={changeset} />
53
54
  </div>
54
55
  <div className={classNames("column", "is-flex", "is-justify-content-flex-end", "is-align-items-center")}>
55
- <ChangesetButtonGroup repository={repository} changeset={changeset} />
56
+ <ChangesetButtonGroup repository={repository} changeset={changeset} file={file} />
56
57
  <ExtensionPoint
57
58
  name="changeset.right"
58
59
  props={{
59
60
  repository,
60
- changeset,
61
+ changeset
61
62
  }}
62
63
  renderAll={true}
63
64
  />
@@ -22,7 +22,7 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- import { Changeset, Repository } from "@scm-manager/ui-types";
25
+ import { Changeset, File, Repository } from "@scm-manager/ui-types";
26
26
 
27
27
  export type Description = {
28
28
  title: string;
@@ -33,8 +33,13 @@ export function createChangesetLink(repository: Repository, changeset: Changeset
33
33
  return `/repo/${repository.namespace}/${repository.name}/code/changeset/${changeset.id}`;
34
34
  }
35
35
 
36
- export function createSourcesLink(repository: Repository, changeset: Changeset) {
37
- return `/repo/${repository.namespace}/${repository.name}/code/sources/${changeset.id}`;
36
+ export function createSourcesLink(repository: Repository, changeset: Changeset, file?: File) {
37
+ let url = `/repo/${repository.namespace}/${repository.name}/code/sources/${changeset.id}`;
38
+
39
+ if (file) {
40
+ url += `/${encodeURIComponent(file.path)}/`;
41
+ }
42
+ return url;
38
43
  }
39
44
 
40
45
  export function parseDescription(description?: string): Description {
@@ -53,6 +58,6 @@ export function parseDescription(description?: string): Description {
53
58
 
54
59
  return {
55
60
  title,
56
- message,
61
+ message
57
62
  };
58
63
  }