Skip to content

Commit a61d9ad

Browse files
committed
feat(FR-2688): migrate notification item VirtualFolderNode branch to Strawberry V2
1 parent 4282f19 commit a61d9ad

2 files changed

Lines changed: 33 additions & 24 deletions

File tree

react/src/components/BAINodeNotificationItem.tsx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55
import { NotificationState } from '../hooks/useBAINotification';
66
import BAIComputeSessionNodeNotificationItem from './BAIComputeSessionNodeNotificationItem';
7-
import BAIVirtualFolderNodeNotificationItem from './BAIVirtualFolderNodeNotificationItem';
7+
import BAIVFolderNotificationItem from './BAIVFolderNotificationItem';
88
import React from 'react';
99
import { graphql, useRefetchableFragment } from 'react-relay';
1010
import { BAINodeNotificationItemFragment$key } from 'src/__generated__/BAINodeNotificationItemFragment.graphql';
@@ -20,11 +20,9 @@ const nodeFragmentOperation = graphql`
2020
...BAIComputeSessionNodeNotificationItemFragment
2121
@alias(as: "sessionFrgmt")
2222
}
23-
... on VirtualFolderNode {
23+
... on VFolder {
2424
__typename
25-
status
26-
...BAIVirtualFolderNodeNotificationItemFragment
27-
@alias(as: "virtualFolderNodeFrgmt")
25+
...BAIVFolderNotificationItemFragment @alias(as: "vfolderFrgmt")
2826
}
2927
}
3028
`;
@@ -45,11 +43,11 @@ const BAINodeNotificationItem: React.FC<{
4543
primaryAppOption={notification.extraData}
4644
/>
4745
);
48-
} else if (node?.__typename === 'VirtualFolderNode') {
46+
} else if (node?.__typename === 'VFolder') {
4947
return (
50-
<BAIVirtualFolderNodeNotificationItem
48+
<BAIVFolderNotificationItem
5149
notification={notification}
52-
virtualFolderNodeFrgmt={node.virtualFolderNodeFrgmt || null}
50+
vfolderFrgmt={node.vfolderFrgmt || null}
5351
showDate={showDate}
5452
/>
5553
);

react/src/components/BAIVirtualFolderNodeNotificationItem.tsx renamed to react/src/components/BAIVFolderNotificationItem.tsx

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,35 @@
55
import BAINotificationBackgroundProgress from './BAINotificationBackgroundProgress';
66
import { useToggle } from 'ahooks';
77
import { Card, List, theme, Typography } from 'antd';
8-
import { BAIFlex, BAILink, BAINotificationItem, BAIText } from 'backend.ai-ui';
8+
import {
9+
BAIFlex,
10+
BAILink,
11+
BAINotificationItem,
12+
BAIText,
13+
toLocalId,
14+
} from 'backend.ai-ui';
915
import dayjs from 'dayjs';
1016
import * as _ from 'lodash-es';
1117
import { useTranslation } from 'react-i18next';
1218
import { graphql, useFragment } from 'react-relay';
1319
import { useNavigate } from 'react-router-dom';
14-
import { BAIVirtualFolderNodeNotificationItemFragment$key } from 'src/__generated__/BAIVirtualFolderNodeNotificationItemFragment.graphql';
20+
import { BAIVFolderNotificationItemFragment$key } from 'src/__generated__/BAIVFolderNotificationItemFragment.graphql';
1521
import {
1622
NotificationState,
1723
useSetBAINotification,
1824
} from 'src/hooks/useBAINotification';
1925

20-
interface BAIVirtualFolderNodeNotificationItemProps {
26+
interface BAIVFolderNotificationItemProps {
2127
notification: NotificationState;
22-
virtualFolderNodeFrgmt: BAIVirtualFolderNodeNotificationItemFragment$key | null;
28+
vfolderFrgmt: BAIVFolderNotificationItemFragment$key | null;
2329
showDate?: boolean;
2430
}
2531

26-
const BAIVirtualFolderNodeNotificationItem: React.FC<
27-
BAIVirtualFolderNodeNotificationItemProps
28-
> = ({ notification, virtualFolderNodeFrgmt, showDate }) => {
32+
const BAIVFolderNotificationItem: React.FC<BAIVFolderNotificationItemProps> = ({
33+
notification,
34+
vfolderFrgmt,
35+
showDate,
36+
}) => {
2937
'use memo';
3038

3139
const navigate = useNavigate();
@@ -37,16 +45,19 @@ const BAIVirtualFolderNodeNotificationItem: React.FC<
3745

3846
const node = useFragment(
3947
graphql`
40-
fragment BAIVirtualFolderNodeNotificationItemFragment on VirtualFolderNode {
41-
row_id
48+
fragment BAIVFolderNotificationItemFragment on VFolder {
4249
id
43-
name
44-
status
50+
metadata {
51+
name
52+
}
4553
}
4654
`,
47-
virtualFolderNodeFrgmt,
55+
vfolderFrgmt,
4856
);
4957

58+
const folderName = node?.metadata?.name;
59+
const folderLocalId = node?.id ? toLocalId(node.id) : undefined;
60+
5061
return (
5162
node && (
5263
<BAINotificationItem
@@ -57,15 +68,15 @@ const BAIVirtualFolderNodeNotificationItem: React.FC<
5768
style={{
5869
fontWeight: 'normal',
5970
}}
60-
title={node.name || ''}
71+
title={folderName || ''}
6172
onClick={() => {
6273
navigate(
63-
`/data${node.row_id ? `?${new URLSearchParams({ folder: node.row_id }).toString()}` : ''}`,
74+
`/data${folderLocalId ? `?${new URLSearchParams({ folder: folderLocalId }).toString()}` : ''}`,
6475
);
6576
closeNotification(notification.key);
6677
}}
6778
>
68-
{node.name}
79+
{folderName}
6980
</BAILink>
7081
</BAIText>
7182
}
@@ -138,4 +149,4 @@ const BAIVirtualFolderNodeNotificationItem: React.FC<
138149
);
139150
};
140151

141-
export default BAIVirtualFolderNodeNotificationItem;
152+
export default BAIVFolderNotificationItem;

0 commit comments

Comments
 (0)