@confidencesystemsinc/sdk 1.0.2 → 1.0.4
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/dist/sdk.cjs +1 -1
- package/dist/sdk.js +1 -1
- package/package.json +2 -3
- package/dist/index.css +0 -1
- package/src/App.css +0 -2
- package/src/components/badge.tsx +0 -116
- package/src/components/initiate-playbook-modal/InitiatePlaybookModal.tsx +0 -53
- package/src/components/playbook/confidence-playbook.tsx +0 -217
- package/src/components/playbook/playbook-header.tsx +0 -13
- package/src/components/playbook-button/ConfidencePlaybookButton.tsx +0 -74
- package/src/components/task/confidence-task.tsx +0 -198
- package/src/components/task/task-buttons.tsx +0 -32
- package/src/components/task/task-dropdown-badge.tsx +0 -121
- package/src/components/task/task-left-panel.tsx +0 -60
- package/src/components/task/task-status-badge.tsx +0 -23
- package/src/components/ui/button.tsx +0 -269
- package/src/components/ui/header.tsx +0 -12
- package/src/components/ui/input.tsx +0 -39
- package/src/components/ui/modal.tsx +0 -88
- package/src/constants/settings.constants.ts +0 -2
- package/src/hooks/task-events/useCompleteTask.ts +0 -26
- package/src/hooks/task-events/useStartTask.ts +0 -29
- package/src/hooks/usePlaybook.ts +0 -48
- package/src/hooks/usePlaybookActions.ts +0 -69
- package/src/hooks/useTaskButtons.ts +0 -46
- package/src/index.ts +0 -6
- package/src/services/complete-task.service.ts +0 -21
- package/src/services/initiate-playbook.service.ts +0 -24
- package/src/services/start-task.services.ts +0 -23
- package/src/stories/initiate-playbook-modal.stories.tsx +0 -31
- package/src/stories/modal.stories.tsx +0 -50
- package/src/stories/playbook-container.stories.tsx +0 -79
- package/src/types/playbook.types.ts +0 -22
- package/src/types/task.types.ts +0 -20
- package/src/utils/cn.ts +0 -6
- package/src/vite-env.d.ts +0 -1
package/src/hooks/usePlaybook.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { useQuery } from "@tanstack/react-query";
|
|
2
|
-
import { KONG_KEY } from "../constants/settings.constants";
|
|
3
|
-
import { usePlaybookActions } from "./usePlaybookActions";
|
|
4
|
-
import { Playbook } from "../types/playbook.types";
|
|
5
|
-
|
|
6
|
-
export const usePlaybook = (playbookInstanceId: number | string) => {
|
|
7
|
-
const query = useQuery({
|
|
8
|
-
queryFn: async () => {
|
|
9
|
-
const headers = new Headers();
|
|
10
|
-
|
|
11
|
-
headers.append("Content-Type", "application/json");
|
|
12
|
-
headers.append("apiKey", KONG_KEY);
|
|
13
|
-
const response = await fetch(`/public-api/playbook-details`, {
|
|
14
|
-
method: "POST",
|
|
15
|
-
cache: "no-store",
|
|
16
|
-
headers,
|
|
17
|
-
body: JSON.stringify({
|
|
18
|
-
playbookInstanceId: +playbookInstanceId,
|
|
19
|
-
start: 0,
|
|
20
|
-
limit: 50,
|
|
21
|
-
}),
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
if (!response.ok) {
|
|
25
|
-
throw new Error("Network response was not ok");
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const data = await response.json();
|
|
29
|
-
if (data.error) {
|
|
30
|
-
throw new Error(data.error);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return data;
|
|
34
|
-
},
|
|
35
|
-
queryKey: ["playbook", +playbookInstanceId],
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
const actions = usePlaybookActions(playbookInstanceId, {
|
|
39
|
-
quickComplete: query.data?.quickComplete,
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
playbook: query.data as Playbook,
|
|
44
|
-
isLoading: query.isLoading,
|
|
45
|
-
error: query.error,
|
|
46
|
-
actions,
|
|
47
|
-
};
|
|
48
|
-
};
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { useQueryClient } from "@tanstack/react-query";
|
|
2
|
-
import { Playbook } from "../types/playbook.types";
|
|
3
|
-
import { Task, TASK_STATUS } from "../types/task.types";
|
|
4
|
-
import { useCompleteTask } from "./task-events/useCompleteTask";
|
|
5
|
-
import { useStartTask } from "./task-events/useStartTask";
|
|
6
|
-
|
|
7
|
-
export const usePlaybookActions = (
|
|
8
|
-
playbookInstanceId: number | string,
|
|
9
|
-
options: {
|
|
10
|
-
quickComplete?: boolean;
|
|
11
|
-
},
|
|
12
|
-
) => {
|
|
13
|
-
const queryClient = useQueryClient();
|
|
14
|
-
|
|
15
|
-
const { completeTask } = useCompleteTask();
|
|
16
|
-
const { startTask } = useStartTask();
|
|
17
|
-
|
|
18
|
-
const completeTaskHandler = async (
|
|
19
|
-
taskInstanceId: number,
|
|
20
|
-
sequenceOrder: number,
|
|
21
|
-
) => {
|
|
22
|
-
const { status } = await completeTask(taskInstanceId.toString());
|
|
23
|
-
if (!status) return;
|
|
24
|
-
|
|
25
|
-
queryClient.setQueryData(
|
|
26
|
-
["playbook", +playbookInstanceId],
|
|
27
|
-
(oldData: Playbook) => {
|
|
28
|
-
if (!oldData) return oldData;
|
|
29
|
-
const updatedTasks = oldData.tasks.map((task: Task) => {
|
|
30
|
-
if (
|
|
31
|
-
task.sequenceOrder === sequenceOrder + 1 &&
|
|
32
|
-
options.quickComplete
|
|
33
|
-
) {
|
|
34
|
-
return { ...task, workflowStatus: TASK_STATUS.IN_PROGRESS };
|
|
35
|
-
}
|
|
36
|
-
if (task.taskInstanceId === taskInstanceId) {
|
|
37
|
-
return { ...task, workflowStatus: status };
|
|
38
|
-
}
|
|
39
|
-
return task;
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
return { ...oldData, tasks: updatedTasks };
|
|
43
|
-
},
|
|
44
|
-
);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const startTaskHandler = async (taskInstanceId: number) => {
|
|
48
|
-
const { status } = await startTask(taskInstanceId.toString());
|
|
49
|
-
if (!status) return;
|
|
50
|
-
queryClient.setQueryData(
|
|
51
|
-
["playbook", +playbookInstanceId],
|
|
52
|
-
(oldData: Playbook) => {
|
|
53
|
-
if (!oldData) return oldData;
|
|
54
|
-
const updatedTasks = oldData.tasks.map((task: Task) => {
|
|
55
|
-
if (task.taskInstanceId === taskInstanceId) {
|
|
56
|
-
return { ...task, workflowStatus: status };
|
|
57
|
-
}
|
|
58
|
-
return task;
|
|
59
|
-
});
|
|
60
|
-
return { ...oldData, tasks: updatedTasks };
|
|
61
|
-
},
|
|
62
|
-
);
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
return {
|
|
66
|
-
completeTask: completeTaskHandler,
|
|
67
|
-
startTask: startTaskHandler,
|
|
68
|
-
};
|
|
69
|
-
};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { useMemo } from "react";
|
|
2
|
-
import { TASK_STATUS, TaskStatus } from "../types/task.types";
|
|
3
|
-
|
|
4
|
-
export const TASK_BUTTONS = {
|
|
5
|
-
START: "START",
|
|
6
|
-
PAUSE: "PAUSE",
|
|
7
|
-
RESUME: "RESUME",
|
|
8
|
-
COMPLETE: "COMPLETE",
|
|
9
|
-
} as const;
|
|
10
|
-
|
|
11
|
-
export const TASK_BUTTONS_DISPLAY_TEXT: {
|
|
12
|
-
[key in TaskButton]: string;
|
|
13
|
-
} = {
|
|
14
|
-
START: "Start",
|
|
15
|
-
PAUSE: "Pause",
|
|
16
|
-
RESUME: "Resume",
|
|
17
|
-
COMPLETE: "Complete",
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export type TaskButton = (typeof TASK_BUTTONS)[keyof typeof TASK_BUTTONS];
|
|
21
|
-
|
|
22
|
-
export const useTaskButtons = (args: {
|
|
23
|
-
taskStatus: TaskStatus;
|
|
24
|
-
canStart: boolean;
|
|
25
|
-
}) => {
|
|
26
|
-
const { taskStatus } = args;
|
|
27
|
-
|
|
28
|
-
const buttons = useMemo(() => {
|
|
29
|
-
if (taskStatus === TASK_STATUS.OPEN && args.canStart) {
|
|
30
|
-
return [TASK_BUTTONS.START];
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (taskStatus === TASK_STATUS.IN_PROGRESS) {
|
|
34
|
-
return [TASK_BUTTONS.PAUSE, TASK_BUTTONS.COMPLETE];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (taskStatus === TASK_STATUS.COMPLETED) {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
return [];
|
|
41
|
-
}, [taskStatus]);
|
|
42
|
-
|
|
43
|
-
return {
|
|
44
|
-
buttons,
|
|
45
|
-
};
|
|
46
|
-
};
|
package/src/index.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import "./App.css";
|
|
2
|
-
import { ConfidencePlaybook } from "./components/playbook/confidence-playbook";
|
|
3
|
-
import { ConfidencePlaybookButton } from "./components/playbook-button/ConfidencePlaybookButton";
|
|
4
|
-
|
|
5
|
-
export { ConfidencePlaybook };
|
|
6
|
-
export { ConfidencePlaybookButton };
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { TaskStatus } from "../types/task.types";
|
|
2
|
-
|
|
3
|
-
export const completeTask = async (
|
|
4
|
-
taskInstanceId: string,
|
|
5
|
-
): Promise<{
|
|
6
|
-
status: TaskStatus;
|
|
7
|
-
}> => {
|
|
8
|
-
const body = {
|
|
9
|
-
taskInstanceId,
|
|
10
|
-
};
|
|
11
|
-
const headers = new Headers();
|
|
12
|
-
headers.append("Content-Type", "application/json");
|
|
13
|
-
const response = await fetch(`/public-api/playbook-task-complete`, {
|
|
14
|
-
method: "POST",
|
|
15
|
-
headers,
|
|
16
|
-
body: JSON.stringify(body),
|
|
17
|
-
});
|
|
18
|
-
const data = await response.json();
|
|
19
|
-
|
|
20
|
-
return data;
|
|
21
|
-
};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export const initiatePlaybook = async (body: {
|
|
2
|
-
bank: string;
|
|
3
|
-
email: string;
|
|
4
|
-
timezone: string;
|
|
5
|
-
playbookUid: string;
|
|
6
|
-
}): Promise<{
|
|
7
|
-
playbookInstanceId: number;
|
|
8
|
-
errorCode?: number;
|
|
9
|
-
details?: Array<string>;
|
|
10
|
-
message?: string;
|
|
11
|
-
}> => {
|
|
12
|
-
const headers = new Headers();
|
|
13
|
-
headers.append("Content-Type", "application/json");
|
|
14
|
-
const response = await fetch(`/public-api/playbook-initiate`, {
|
|
15
|
-
method: "POST",
|
|
16
|
-
headers,
|
|
17
|
-
body: JSON.stringify(body),
|
|
18
|
-
});
|
|
19
|
-
const data = await response.json();
|
|
20
|
-
|
|
21
|
-
console.log({ data });
|
|
22
|
-
|
|
23
|
-
return data;
|
|
24
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { TaskStatus } from "../types/task.types";
|
|
2
|
-
|
|
3
|
-
export const startTask = async (
|
|
4
|
-
taskInstanceId: string,
|
|
5
|
-
): Promise<{
|
|
6
|
-
status: TaskStatus;
|
|
7
|
-
}> => {
|
|
8
|
-
const body = {
|
|
9
|
-
taskInstanceId,
|
|
10
|
-
};
|
|
11
|
-
const headers = new Headers();
|
|
12
|
-
headers.append("Content-Type", "application/json");
|
|
13
|
-
const response = await fetch(`/public-api/playbook-task-start`, {
|
|
14
|
-
method: "POST",
|
|
15
|
-
headers,
|
|
16
|
-
body: JSON.stringify(body),
|
|
17
|
-
});
|
|
18
|
-
const data = await response.json();
|
|
19
|
-
|
|
20
|
-
console.log({ data });
|
|
21
|
-
|
|
22
|
-
return data;
|
|
23
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import { InitiatePlaybookModal } from "../components/initiate-playbook-modal/InitiatePlaybookModal";
|
|
3
|
-
|
|
4
|
-
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
|
5
|
-
const meta = {
|
|
6
|
-
title: "InitiatePlaybookModal",
|
|
7
|
-
component: InitiatePlaybookModal,
|
|
8
|
-
parameters: {
|
|
9
|
-
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
|
10
|
-
layout: "fullscreen",
|
|
11
|
-
},
|
|
12
|
-
// This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
|
|
13
|
-
tags: ["autodocs"],
|
|
14
|
-
// More on argTypes: https://storybook.js.org/docs/api/argtypes
|
|
15
|
-
argTypes: {},
|
|
16
|
-
// Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args
|
|
17
|
-
args: {},
|
|
18
|
-
} satisfies Meta<typeof InitiatePlaybookModal>;
|
|
19
|
-
|
|
20
|
-
export default meta;
|
|
21
|
-
type Story = StoryObj<typeof meta>;
|
|
22
|
-
|
|
23
|
-
// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
|
|
24
|
-
export const Default: Story = {
|
|
25
|
-
args: {
|
|
26
|
-
isOpen: true,
|
|
27
|
-
onClose: () => console.log("Modal closed"),
|
|
28
|
-
onConfirm: (email: string) =>
|
|
29
|
-
console.log(`Playbook initiated with email: ${email}`),
|
|
30
|
-
},
|
|
31
|
-
};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import { Modal } from "../components/ui/modal";
|
|
3
|
-
|
|
4
|
-
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
|
5
|
-
const meta = {
|
|
6
|
-
title: "Modal",
|
|
7
|
-
component: Modal,
|
|
8
|
-
parameters: {
|
|
9
|
-
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
|
10
|
-
layout: "fullscreen",
|
|
11
|
-
},
|
|
12
|
-
// This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
|
|
13
|
-
tags: ["autodocs"],
|
|
14
|
-
// More on argTypes: https://storybook.js.org/docs/api/argtypes
|
|
15
|
-
argTypes: {},
|
|
16
|
-
// Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args
|
|
17
|
-
args: {},
|
|
18
|
-
} satisfies Meta<typeof Modal>;
|
|
19
|
-
|
|
20
|
-
export default meta;
|
|
21
|
-
type Story = StoryObj<typeof meta>;
|
|
22
|
-
|
|
23
|
-
// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
|
|
24
|
-
export const Default: Story = {
|
|
25
|
-
args: {
|
|
26
|
-
isOpen: true,
|
|
27
|
-
children: (
|
|
28
|
-
<>
|
|
29
|
-
<p className="text-gray-500">
|
|
30
|
-
Are you sure you want to deactivate this playbook? This action cannot
|
|
31
|
-
be undone.
|
|
32
|
-
</p>
|
|
33
|
-
<p className="text-gray-500">
|
|
34
|
-
Deactivating a playbook will stop all associated tasks and prevent any
|
|
35
|
-
further actions.
|
|
36
|
-
</p>
|
|
37
|
-
</>
|
|
38
|
-
),
|
|
39
|
-
dismissOptions: {
|
|
40
|
-
label: "Cancel",
|
|
41
|
-
onClick: () => console.log("Modal dismissed"),
|
|
42
|
-
},
|
|
43
|
-
confirmOptions: {
|
|
44
|
-
label: "Deactivate",
|
|
45
|
-
onClick: () => console.log("Playbook deactivated"),
|
|
46
|
-
},
|
|
47
|
-
title: "Deactivate Playbook",
|
|
48
|
-
close() {},
|
|
49
|
-
},
|
|
50
|
-
};
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import { ConfidencePlaybook } from "../components/playbook/confidence-playbook";
|
|
3
|
-
import { TaskButton } from "../hooks/useTaskButtons";
|
|
4
|
-
|
|
5
|
-
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
|
|
6
|
-
const meta = {
|
|
7
|
-
title: "PlaybookContainer",
|
|
8
|
-
component: ConfidencePlaybook.View,
|
|
9
|
-
parameters: {
|
|
10
|
-
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
|
|
11
|
-
layout: "fullscreen",
|
|
12
|
-
},
|
|
13
|
-
// This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
|
|
14
|
-
tags: ["autodocs"],
|
|
15
|
-
// More on argTypes: https://storybook.js.org/docs/api/argtypes
|
|
16
|
-
argTypes: {},
|
|
17
|
-
// Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args
|
|
18
|
-
args: {
|
|
19
|
-
viewMode: "list",
|
|
20
|
-
playbook: {
|
|
21
|
-
playbookInstanceId: 4771,
|
|
22
|
-
playbookInstanceName: "ACH - Returns - [HORIZON]",
|
|
23
|
-
playbookId: 227718,
|
|
24
|
-
type: "Sequential",
|
|
25
|
-
quickComplete: true,
|
|
26
|
-
autoExpandTask: true,
|
|
27
|
-
autoStart: false,
|
|
28
|
-
leadEmail: "confidence@user.it",
|
|
29
|
-
workflowStatus: "In progress",
|
|
30
|
-
numberofTasks: 3,
|
|
31
|
-
tasks: [
|
|
32
|
-
{
|
|
33
|
-
taskInstanceId: 10949,
|
|
34
|
-
taskId: 1676864,
|
|
35
|
-
sequenceOrder: 0,
|
|
36
|
-
workflowStatus: "Completed",
|
|
37
|
-
taskInstanceName:
|
|
38
|
-
"Identify Return Items [Deposit Operations Specialist]",
|
|
39
|
-
taskStartTime: "2025-05-20 09:06:13",
|
|
40
|
-
taskCompletedTime: "2025-05-20 09:06:20",
|
|
41
|
-
imageRequired: 1,
|
|
42
|
-
hasDescription: true,
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
taskInstanceId: 10951,
|
|
46
|
-
taskId: 1676866,
|
|
47
|
-
sequenceOrder: 1,
|
|
48
|
-
workflowStatus: "Completed",
|
|
49
|
-
taskInstanceName:
|
|
50
|
-
"Review Return Items [Deposit Operations Specialist]",
|
|
51
|
-
taskStartTime: "2025-05-20 09:06:20",
|
|
52
|
-
taskCompletedTime: "2025-05-20 09:06:25",
|
|
53
|
-
imageRequired: 2,
|
|
54
|
-
hasDescription: true,
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
taskInstanceId: 10950,
|
|
58
|
-
taskId: 1676865,
|
|
59
|
-
sequenceOrder: 2,
|
|
60
|
-
workflowStatus: "In progress",
|
|
61
|
-
taskInstanceName: "Return Items [Deposit Operations Specialist]",
|
|
62
|
-
imageRequired: 2,
|
|
63
|
-
hasDescription: true,
|
|
64
|
-
},
|
|
65
|
-
],
|
|
66
|
-
},
|
|
67
|
-
onTaskButtonClick: (btn: TaskButton, taskId: number) => {
|
|
68
|
-
console.log("Button clicked:", btn, "for task ID:", taskId);
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
} satisfies Meta<typeof ConfidencePlaybook.View>;
|
|
72
|
-
|
|
73
|
-
export default meta;
|
|
74
|
-
type Story = StoryObj<typeof meta>;
|
|
75
|
-
|
|
76
|
-
// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
|
|
77
|
-
export const Default: Story = {
|
|
78
|
-
args: {},
|
|
79
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Task } from "./task.types";
|
|
2
|
-
export interface Playbook {
|
|
3
|
-
playbookInstanceId: number;
|
|
4
|
-
playbookInstanceName: string;
|
|
5
|
-
playbookId: number;
|
|
6
|
-
type: string;
|
|
7
|
-
quickComplete: boolean;
|
|
8
|
-
autoExpandTask: boolean;
|
|
9
|
-
autoStart: boolean;
|
|
10
|
-
leadEmail: string;
|
|
11
|
-
workflowStatus: string;
|
|
12
|
-
numberofTasks: number;
|
|
13
|
-
nextTaskId?: number;
|
|
14
|
-
tasks: Task[];
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const PLAYBOOK_TYPES = {
|
|
18
|
-
NON_SEQUENTIAL: "Non-Sequential",
|
|
19
|
-
SEQUENTIAL: "Sequential",
|
|
20
|
-
} as const;
|
|
21
|
-
|
|
22
|
-
export type PlaybookType = (typeof PLAYBOOK_TYPES)[keyof typeof PLAYBOOK_TYPES];
|
package/src/types/task.types.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export const TASK_STATUS = {
|
|
2
|
-
OPEN: "Open",
|
|
3
|
-
IN_PROGRESS: "In progress",
|
|
4
|
-
IN_REVIEW: "In review",
|
|
5
|
-
COMPLETED: "Completed",
|
|
6
|
-
} as const;
|
|
7
|
-
|
|
8
|
-
export type TaskStatus = (typeof TASK_STATUS)[keyof typeof TASK_STATUS];
|
|
9
|
-
|
|
10
|
-
export interface Task {
|
|
11
|
-
taskInstanceId: number;
|
|
12
|
-
taskId: number;
|
|
13
|
-
sequenceOrder: number;
|
|
14
|
-
workflowStatus: TaskStatus;
|
|
15
|
-
taskInstanceName: string;
|
|
16
|
-
imageRequired: number;
|
|
17
|
-
hasDescription: boolean;
|
|
18
|
-
taskStartTime?: string;
|
|
19
|
-
taskCompletedTime?: string;
|
|
20
|
-
}
|
package/src/utils/cn.ts
DELETED
package/src/vite-env.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/// <reference types="vite/client" />
|