@scm-manager/ui-components 2.26.1-20211008-080249 → 2.26.1

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.26.1-20211008-080249",
3
+ "version": "2.26.1",
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.12.7",
26
26
  "@scm-manager/prettier-config": "^2.10.1",
27
27
  "@scm-manager/tsconfig": "^2.12.0",
28
- "@scm-manager/ui-tests": "^2.26.1-20211008-080249",
28
+ "@scm-manager/ui-tests": "^2.26.1",
29
29
  "@storybook/addon-actions": "^6.3.12",
30
30
  "@storybook/addon-storyshots": "^6.3.12",
31
31
  "@storybook/react": "^6.3.12",
@@ -61,9 +61,9 @@
61
61
  "worker-plugin": "^3.2.0"
62
62
  },
63
63
  "dependencies": {
64
- "@scm-manager/ui-api": "^2.26.1-20211008-080249",
65
- "@scm-manager/ui-extensions": "^2.26.1-20211008-080249",
66
- "@scm-manager/ui-types": "^2.26.1-20211008-080249",
64
+ "@scm-manager/ui-api": "^2.26.1",
65
+ "@scm-manager/ui-extensions": "^2.26.1",
66
+ "@scm-manager/ui-types": "^2.26.1",
67
67
  "classnames": "^2.2.6",
68
68
  "date-fns": "^2.4.1",
69
69
  "deepmerge": "^4.2.2",
@@ -20765,7 +20765,7 @@ exports[`Storyshots Repositories/Changesets Co-Authors with avatar 1`] = `
20765
20765
  className="media-left mt-2 mr-2"
20766
20766
  >
20767
20767
  <div
20768
- className="ChangesetRow__FixedSizedAvatar-tkpti5-1 cavgTa image"
20768
+ className="SingleChangeset__FixedSizedAvatar-ytpqp9-0 cFkYuh image"
20769
20769
  >
20770
20770
  <img
20771
20771
  alt="SCM Administrator"
@@ -20775,7 +20775,7 @@ exports[`Storyshots Repositories/Changesets Co-Authors with avatar 1`] = `
20775
20775
  </div>
20776
20776
  </figure>
20777
20777
  <div
20778
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
20778
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
20779
20779
  >
20780
20780
  <h4
20781
20781
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -20931,7 +20931,7 @@ exports[`Storyshots Repositories/Changesets Commiter and Co-Authors with avatar
20931
20931
  className="media-left mt-2 mr-2"
20932
20932
  >
20933
20933
  <div
20934
- className="ChangesetRow__FixedSizedAvatar-tkpti5-1 cavgTa image"
20934
+ className="SingleChangeset__FixedSizedAvatar-ytpqp9-0 cFkYuh image"
20935
20935
  >
20936
20936
  <img
20937
20937
  alt="SCM Administrator"
@@ -20941,7 +20941,7 @@ exports[`Storyshots Repositories/Changesets Commiter and Co-Authors with avatar
20941
20941
  </div>
20942
20942
  </figure>
20943
20943
  <div
20944
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
20944
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
20945
20945
  >
20946
20946
  <h4
20947
20947
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -21083,7 +21083,7 @@ exports[`Storyshots Repositories/Changesets Default 1`] = `
21083
21083
  className="media"
21084
21084
  >
21085
21085
  <div
21086
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
21086
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
21087
21087
  >
21088
21088
  <h4
21089
21089
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -21196,7 +21196,7 @@ exports[`Storyshots Repositories/Changesets Replacements 1`] = `
21196
21196
  className="media"
21197
21197
  >
21198
21198
  <div
21199
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
21199
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
21200
21200
  >
21201
21201
  <h4
21202
21202
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -21319,7 +21319,7 @@ exports[`Storyshots Repositories/Changesets With Committer 1`] = `
21319
21319
  className="media"
21320
21320
  >
21321
21321
  <div
21322
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
21322
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
21323
21323
  >
21324
21324
  <h4
21325
21325
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -21444,7 +21444,7 @@ exports[`Storyshots Repositories/Changesets With Committer and Co-Author 1`] = `
21444
21444
  className="media"
21445
21445
  >
21446
21446
  <div
21447
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
21447
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
21448
21448
  >
21449
21449
  <h4
21450
21450
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -21581,7 +21581,7 @@ exports[`Storyshots Repositories/Changesets With avatar 1`] = `
21581
21581
  className="media-left mt-2 mr-2"
21582
21582
  >
21583
21583
  <div
21584
- className="ChangesetRow__FixedSizedAvatar-tkpti5-1 cavgTa image"
21584
+ className="SingleChangeset__FixedSizedAvatar-ytpqp9-0 cFkYuh image"
21585
21585
  >
21586
21586
  <img
21587
21587
  alt="SCM Administrator"
@@ -21591,7 +21591,7 @@ exports[`Storyshots Repositories/Changesets With avatar 1`] = `
21591
21591
  </div>
21592
21592
  </figure>
21593
21593
  <div
21594
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
21594
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
21595
21595
  >
21596
21596
  <h4
21597
21597
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -21704,7 +21704,7 @@ exports[`Storyshots Repositories/Changesets With contactless signature 1`] = `
21704
21704
  className="media"
21705
21705
  >
21706
21706
  <div
21707
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
21707
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
21708
21708
  >
21709
21709
  <h4
21710
21710
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -21827,7 +21827,7 @@ exports[`Storyshots Repositories/Changesets With invalid signature 1`] = `
21827
21827
  className="media"
21828
21828
  >
21829
21829
  <div
21830
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
21830
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
21831
21831
  >
21832
21832
  <h4
21833
21833
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -21950,7 +21950,7 @@ exports[`Storyshots Repositories/Changesets With multiple Co-Authors 1`] = `
21950
21950
  className="media"
21951
21951
  >
21952
21952
  <div
21953
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
21953
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
21954
21954
  >
21955
21955
  <h4
21956
21956
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -22076,7 +22076,7 @@ exports[`Storyshots Repositories/Changesets With multiple signatures and invalid
22076
22076
  className="media"
22077
22077
  >
22078
22078
  <div
22079
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
22079
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
22080
22080
  >
22081
22081
  <h4
22082
22082
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -22199,7 +22199,7 @@ exports[`Storyshots Repositories/Changesets With multiple signatures and not fou
22199
22199
  className="media"
22200
22200
  >
22201
22201
  <div
22202
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
22202
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
22203
22203
  >
22204
22204
  <h4
22205
22205
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -22322,7 +22322,7 @@ exports[`Storyshots Repositories/Changesets With multiple signatures and valid s
22322
22322
  className="media"
22323
22323
  >
22324
22324
  <div
22325
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
22325
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
22326
22326
  >
22327
22327
  <h4
22328
22328
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -22445,7 +22445,7 @@ exports[`Storyshots Repositories/Changesets With unknown signature 1`] = `
22445
22445
  className="media"
22446
22446
  >
22447
22447
  <div
22448
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
22448
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
22449
22449
  >
22450
22450
  <h4
22451
22451
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -22568,7 +22568,7 @@ exports[`Storyshots Repositories/Changesets With unowned signature 1`] = `
22568
22568
  className="media"
22569
22569
  >
22570
22570
  <div
22571
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
22571
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
22572
22572
  >
22573
22573
  <h4
22574
22574
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -22691,7 +22691,7 @@ exports[`Storyshots Repositories/Changesets With valid signature 1`] = `
22691
22691
  className="media"
22692
22692
  >
22693
22693
  <div
22694
- className="ChangesetRow__FullWidthDiv-tkpti5-2 fkpYZP media-right ml-0"
22694
+ className="SingleChangeset__FullWidthDiv-ytpqp9-1 dYhvFy media-right ml-0"
22695
22695
  >
22696
22696
  <h4
22697
22697
  className="has-text-weight-bold is-ellipsis-overflow"
@@ -21,23 +21,15 @@
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 { Trans, WithTranslation, withTranslation } from "react-i18next";
24
+ import React, { FC } from "react";
26
25
  import classNames from "classnames";
27
26
  import styled from "styled-components";
28
27
  import { ExtensionPoint } from "@scm-manager/ui-extensions";
29
28
  import { Changeset, Repository } from "@scm-manager/ui-types";
30
- import DateFromNow from "../../DateFromNow";
31
- import { AvatarWrapper, AvatarImage } from "../../avatar";
32
- import { parseDescription } from "./changesets";
33
- import ChangesetId from "./ChangesetId";
34
- import ChangesetAuthor from "./ChangesetAuthor";
35
- import ChangesetTags from "./ChangesetTags";
36
29
  import ChangesetButtonGroup from "./ChangesetButtonGroup";
37
- import ChangesetDescription from "./ChangesetDescription";
38
- import SignatureIcon from "./SignatureIcon";
30
+ import SingleChangeset from "./SingleChangeset";
39
31
 
40
- type Props = WithTranslation & {
32
+ type Props = {
41
33
  repository: Repository;
42
34
  changeset: Changeset;
43
35
  };
@@ -52,91 +44,27 @@ const Wrapper = styled.div`
52
44
  }
53
45
  `;
54
46
 
55
- const FixedSizedAvatar = styled.div`
56
- width: 35px;
57
- height: 35px;
58
- `;
59
-
60
- const FullWidthDiv = styled.div`
61
- width: 100%;
62
- `;
63
-
64
- class ChangesetRow extends React.Component<Props> {
65
- createChangesetId = (changeset: Changeset) => {
66
- const { repository } = this.props;
67
- return <ChangesetId changeset={changeset} repository={repository} />;
68
- };
69
-
70
- render() {
71
- const { repository, changeset } = this.props;
72
- const description = parseDescription(changeset.description);
73
- const changesetId = this.createChangesetId(changeset);
74
- const dateFromNow = <DateFromNow date={changeset.date} />;
75
-
76
- return (
77
- <Wrapper>
78
- <div className={classNames("columns", "is-gapless", "is-mobile")}>
79
- <div className={classNames("column", "is-three-fifths")}>
80
- <div className={classNames("columns", "is-gapless")}>
81
- <div className={classNames("column", "is-four-fifths")}>
82
- <div className="media">
83
- <AvatarWrapper>
84
- <figure className={classNames("media-left", "mt-2", "mr-2")}>
85
- <FixedSizedAvatar className="image">
86
- <AvatarImage person={changeset.author} />
87
- </FixedSizedAvatar>
88
- </figure>
89
- </AvatarWrapper>
90
- <FullWidthDiv className={classNames("media-right", "ml-0")}>
91
- <h4 className={classNames("has-text-weight-bold", "is-ellipsis-overflow")}>
92
- <ExtensionPoint
93
- name="changeset.description"
94
- props={{
95
- changeset,
96
- value: description.title,
97
- }}
98
- renderAll={false}
99
- >
100
- <ChangesetDescription changeset={changeset} value={description.title} />
101
- </ExtensionPoint>
102
- </h4>
103
- <p className="is-hidden-touch">
104
- <Trans i18nKey="repos:changeset.summary" components={[changesetId, dateFromNow]} />
105
- </p>
106
- <p className="is-hidden-desktop">
107
- <Trans i18nKey="repos:changeset.shortSummary" components={[changesetId, dateFromNow]} />
108
- </p>
109
- <div className="is-flex">
110
- <p className={classNames("is-size-7", "is-ellipsis-overflow", "mt-2")}>
111
- <ChangesetAuthor changeset={changeset} />
112
- </p>
113
- {changeset?.signatures && changeset.signatures.length > 0 && (
114
- <SignatureIcon className={classNames("mx-2", "pt-1")} signatures={changeset.signatures} />
115
- )}
116
- </div>
117
- </FullWidthDiv>
118
- </div>
119
- </div>
120
- <div className={classNames("column", "is-align-self-center")}>
121
- <ChangesetTags changeset={changeset} />
122
- </div>
123
- </div>
124
- </div>
125
- <div className={classNames("column", "is-flex", "is-justify-content-flex-end", "is-align-items-center")}>
126
- <ChangesetButtonGroup repository={repository} changeset={changeset} />
127
- <ExtensionPoint
128
- name="changeset.right"
129
- props={{
130
- repository,
131
- changeset,
132
- }}
133
- renderAll={true}
134
- />
135
- </div>
47
+ const ChangesetRow: FC<Props> = ({ repository, changeset }) => {
48
+ return (
49
+ <Wrapper>
50
+ <div className={classNames("columns", "is-gapless", "is-mobile")}>
51
+ <div className={classNames("column", "is-three-fifths")}>
52
+ <SingleChangeset repository={repository} changeset={changeset} />
136
53
  </div>
137
- </Wrapper>
138
- );
139
- }
140
- }
54
+ <div className={classNames("column", "is-flex", "is-justify-content-flex-end", "is-align-items-center")}>
55
+ <ChangesetButtonGroup repository={repository} changeset={changeset} />
56
+ <ExtensionPoint
57
+ name="changeset.right"
58
+ props={{
59
+ repository,
60
+ changeset,
61
+ }}
62
+ renderAll={true}
63
+ />
64
+ </div>
65
+ </div>
66
+ </Wrapper>
67
+ );
68
+ };
141
69
 
142
- export default withTranslation("repos")(ChangesetRow);
70
+ export default ChangesetRow;
@@ -0,0 +1,110 @@
1
+ /*
2
+ * MIT License
3
+ *
4
+ * Copyright (c) 2020-present Cloudogu GmbH and Contributors
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+ import React, { FC } from "react";
25
+ import classNames from "classnames";
26
+ import { AvatarImage, AvatarWrapper } from "../../avatar";
27
+ import { ExtensionPoint } from "@scm-manager/ui-extensions";
28
+ import ChangesetDescription from "./ChangesetDescription";
29
+ import { Trans } from "react-i18next";
30
+ import ChangesetAuthor from "./ChangesetAuthor";
31
+ import SignatureIcon from "./SignatureIcon";
32
+ import ChangesetTags from "./ChangesetTags";
33
+ import { parseDescription } from "./changesets";
34
+ import DateFromNow from "../../DateFromNow";
35
+ import { Changeset, Repository } from "@scm-manager/ui-types";
36
+ import styled from "styled-components";
37
+ import ChangesetId from "./ChangesetId";
38
+
39
+ type Props = {
40
+ repository: Repository;
41
+ changeset: Changeset;
42
+ };
43
+
44
+ const FixedSizedAvatar = styled.div`
45
+ width: 35px;
46
+ height: 35px;
47
+ `;
48
+
49
+ const FullWidthDiv = styled.div`
50
+ width: 100%;
51
+ `;
52
+
53
+ const SingleChangeset: FC<Props> = ({ repository, changeset }) => {
54
+ const createChangesetId = () => {
55
+ return <ChangesetId changeset={changeset} repository={repository} />;
56
+ };
57
+
58
+ const description = parseDescription(changeset.description);
59
+ const changesetId = createChangesetId();
60
+ const dateFromNow = <DateFromNow date={changeset.date} />;
61
+
62
+ return (
63
+ <div className={classNames("columns", "is-gapless")}>
64
+ <div className={classNames("column", "is-four-fifths")}>
65
+ <div className="media">
66
+ <AvatarWrapper>
67
+ <figure className={classNames("media-left", "mt-2", "mr-2")}>
68
+ <FixedSizedAvatar className="image">
69
+ <AvatarImage person={changeset.author} />
70
+ </FixedSizedAvatar>
71
+ </figure>
72
+ </AvatarWrapper>
73
+ <FullWidthDiv className={classNames("media-right", "ml-0")}>
74
+ <h4 className={classNames("has-text-weight-bold", "is-ellipsis-overflow")}>
75
+ <ExtensionPoint
76
+ name="changeset.description"
77
+ props={{
78
+ changeset,
79
+ value: description.title,
80
+ }}
81
+ renderAll={false}
82
+ >
83
+ <ChangesetDescription changeset={changeset} value={description.title} />
84
+ </ExtensionPoint>
85
+ </h4>
86
+ <p className="is-hidden-touch">
87
+ <Trans i18nKey="repos:changeset.summary" components={[changesetId, dateFromNow]} />
88
+ </p>
89
+ <p className="is-hidden-desktop">
90
+ <Trans i18nKey="repos:changeset.shortSummary" components={[changesetId, dateFromNow]} />
91
+ </p>
92
+ <div className="is-flex">
93
+ <p className={classNames("is-size-7", "is-ellipsis-overflow", "mt-2")}>
94
+ <ChangesetAuthor changeset={changeset} />
95
+ </p>
96
+ {changeset?.signatures && changeset.signatures.length > 0 && (
97
+ <SignatureIcon className={classNames("mx-2", "pt-1")} signatures={changeset.signatures} />
98
+ )}
99
+ </div>
100
+ </FullWidthDiv>
101
+ </div>
102
+ </div>
103
+ <div className={classNames("column", "is-align-self-center")}>
104
+ <ChangesetTags changeset={changeset} />
105
+ </div>
106
+ </div>
107
+ );
108
+ };
109
+
110
+ export default SingleChangeset;
@@ -23,6 +23,7 @@
23
23
  */
24
24
 
25
25
  import * as changesets from "./changesets";
26
+
26
27
  export { changesets };
27
28
 
28
29
  export { default as ChangesetAuthor, SingleContributor } from "./ChangesetAuthor";
@@ -37,3 +38,4 @@ export { default as ChangesetTags } from "./ChangesetTags";
37
38
  export { default as ChangesetTagsCollapsed } from "./ChangesetTagsCollapsed";
38
39
  export { default as ContributorAvatar } from "./ContributorAvatar";
39
40
  export { default as SignatureIcon } from "./SignatureIcon";
41
+ export { default as SingleChangeset } from "./SingleChangeset";