@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-
|
|
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-
|
|
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-
|
|
70
|
-
"@scm-manager/ui-extensions": "^2.30.2-20220102-
|
|
71
|
-
"@scm-manager/ui-types": "^2.30.2-20220102-
|
|
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 {
|
|
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 {
|
|
28
|
+
import { useTranslation } from "react-i18next";
|
|
29
29
|
|
|
30
|
-
type Props =
|
|
30
|
+
type Props = {
|
|
31
31
|
repository: Repository;
|
|
32
32
|
changeset: Changeset;
|
|
33
|
+
file?: File;
|
|
33
34
|
};
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
<
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
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
|
}
|