@lokalise/harmony 1.34.1 → 1.34.3
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/harmony100.cjs +99 -18
- package/dist/harmony100.cjs.map +1 -1
- package/dist/harmony100.mjs +82 -18
- package/dist/harmony100.mjs.map +1 -1
- package/dist/harmony102.cjs +18 -99
- package/dist/harmony102.cjs.map +1 -1
- package/dist/harmony102.mjs +18 -82
- package/dist/harmony102.mjs.map +1 -1
- package/dist/harmony105.cjs +6 -133
- package/dist/harmony105.cjs.map +1 -1
- package/dist/harmony105.mjs +5 -132
- package/dist/harmony105.mjs.map +1 -1
- package/dist/harmony106.cjs +5 -12
- package/dist/harmony106.cjs.map +1 -1
- package/dist/harmony106.mjs +5 -12
- package/dist/harmony106.mjs.map +1 -1
- package/dist/harmony107.cjs +132 -5
- package/dist/harmony107.cjs.map +1 -1
- package/dist/harmony107.mjs +132 -5
- package/dist/harmony107.mjs.map +1 -1
- package/dist/harmony108.cjs +12 -40
- package/dist/harmony108.cjs.map +1 -1
- package/dist/harmony108.mjs +11 -39
- package/dist/harmony108.mjs.map +1 -1
- package/dist/harmony109.cjs +4 -59
- package/dist/harmony109.cjs.map +1 -1
- package/dist/harmony109.mjs +5 -60
- package/dist/harmony109.mjs.map +1 -1
- package/dist/harmony110.cjs +39 -6
- package/dist/harmony110.cjs.map +1 -1
- package/dist/harmony110.mjs +39 -6
- package/dist/harmony110.mjs.map +1 -1
- package/dist/harmony111.cjs +60 -6
- package/dist/harmony111.cjs.map +1 -1
- package/dist/harmony111.mjs +59 -5
- package/dist/harmony111.mjs.map +1 -1
- package/dist/harmony112.cjs +8 -6
- package/dist/harmony112.cjs.map +1 -1
- package/dist/harmony112.mjs +7 -5
- package/dist/harmony112.mjs.map +1 -1
- package/dist/harmony113.cjs +6 -5
- package/dist/harmony113.cjs.map +1 -1
- package/dist/harmony113.mjs +6 -5
- package/dist/harmony120.cjs +1 -1
- package/dist/harmony120.mjs +1 -1
- package/dist/harmony13.cjs +8 -1
- package/dist/harmony13.cjs.map +1 -1
- package/dist/harmony13.mjs +8 -1
- package/dist/harmony13.mjs.map +1 -1
- package/dist/harmony130.cjs +1 -1
- package/dist/harmony130.mjs +1 -1
- package/dist/harmony137.cjs +1 -1
- package/dist/harmony137.mjs +1 -1
- package/dist/harmony16.cjs +1 -1
- package/dist/harmony16.mjs +1 -1
- package/dist/harmony55.cjs +2 -1
- package/dist/harmony55.cjs.map +1 -1
- package/dist/harmony55.mjs +2 -1
- package/dist/harmony55.mjs.map +1 -1
- package/dist/harmony69.cjs +1 -1
- package/dist/harmony69.mjs +1 -1
- package/dist/harmony79.cjs +6 -6
- package/dist/harmony79.mjs +6 -6
- package/dist/harmony82.cjs +2 -2
- package/dist/harmony82.mjs +2 -2
- package/dist/harmony84.cjs +2 -2
- package/dist/harmony84.mjs +2 -2
- package/dist/harmony85.cjs +10 -9
- package/dist/harmony85.cjs.map +1 -1
- package/dist/harmony85.mjs +12 -11
- package/dist/harmony85.mjs.map +1 -1
- package/dist/harmony86.cjs +11 -20
- package/dist/harmony86.cjs.map +1 -1
- package/dist/harmony86.mjs +11 -20
- package/dist/harmony86.mjs.map +1 -1
- package/dist/harmony87.cjs +9 -10
- package/dist/harmony87.cjs.map +1 -1
- package/dist/harmony87.mjs +11 -12
- package/dist/harmony87.mjs.map +1 -1
- package/dist/harmony88.cjs +20 -11
- package/dist/harmony88.cjs.map +1 -1
- package/dist/harmony88.mjs +20 -11
- package/dist/harmony88.mjs.map +1 -1
- package/dist/harmony98.cjs +1 -1
- package/dist/harmony98.mjs +1 -1
- package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedProjectContributor.d.ts +3 -2
- package/dist/types/src/features/publicApi/contributors.d.ts +30 -20
- package/dist/types/src/features/publicApi/hooks/useListContributorsQuery.d.ts +3 -2
- package/dist/types/src/features/publicApi/hooks/useRetrieveContributorQuery.d.ts +3 -2
- package/dist/types/src/features/publicApi/types/contributorTypes.d.ts +39 -26
- package/package.json +1 -1
package/dist/harmony109.cjs
CHANGED
@@ -1,63 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
const jsxRuntime = require("react/jsx-runtime");
|
4
|
-
const useEffectOnce = require("./harmony12.cjs");
|
5
3
|
const React = require("react");
|
6
|
-
const TasksContext =
|
7
|
-
const
|
8
|
-
|
9
|
-
|
10
|
-
const [loadingTasks, setLoadingTasks] = React.useState(true);
|
11
|
-
const [tasksCount, setTaskCount] = React.useState(0);
|
12
|
-
const {
|
13
|
-
getProjectUrl,
|
14
|
-
onLanguageCompleteConfirm,
|
15
|
-
onTasksWidgetOpen,
|
16
|
-
langNameOnClick,
|
17
|
-
langProgressOnClick,
|
18
|
-
taskTitleOnClick
|
19
|
-
} = config;
|
20
|
-
const { getTasks, getTasksCount } = config;
|
21
|
-
const fetchTasks = async () => {
|
22
|
-
setLoadingTasks(true);
|
23
|
-
const result = await getTasks();
|
24
|
-
setTasks(result);
|
25
|
-
setLoadingTasks(false);
|
26
|
-
return result;
|
27
|
-
};
|
28
|
-
const fetchTaskCount = async () => {
|
29
|
-
const result = await getTasksCount();
|
30
|
-
setTaskCount(result);
|
31
|
-
};
|
32
|
-
useEffectOnce.useEffectOnce(() => {
|
33
|
-
fetchTaskCount();
|
34
|
-
document.addEventListener(taskEvents.TaskEvents.TaskCompleted, fetchTaskCount);
|
35
|
-
document.addEventListener(taskEvents.TaskEvents.TaskClosed, fetchTaskCount);
|
36
|
-
document.addEventListener(taskEvents.TaskEvents.Refresh, fetchTaskCount);
|
37
|
-
return () => {
|
38
|
-
document.removeEventListener(taskEvents.TaskEvents.TaskCompleted, fetchTaskCount);
|
39
|
-
document.removeEventListener(taskEvents.TaskEvents.TaskClosed, fetchTaskCount);
|
40
|
-
document.removeEventListener(taskEvents.TaskEvents.Refresh, fetchTaskCount);
|
41
|
-
};
|
42
|
-
});
|
43
|
-
const providerValue = {
|
44
|
-
fetchTasks,
|
45
|
-
tasks,
|
46
|
-
tasksCount,
|
47
|
-
loadingTasks,
|
48
|
-
getProjectUrl,
|
49
|
-
onLanguageCompleteConfirm,
|
50
|
-
onTasksWidgetOpen,
|
51
|
-
langNameOnClick,
|
52
|
-
langProgressOnClick,
|
53
|
-
taskTitleOnClick
|
54
|
-
};
|
55
|
-
return /* @__PURE__ */ jsxRuntime.jsx(TasksContext.TasksContext.Provider, { value: providerValue, children });
|
56
|
-
};
|
57
|
-
const withTasksContext = (WrappedComponent) => function withTasksContextFn(props) {
|
58
|
-
const { config, ...rest } = props;
|
59
|
-
return /* @__PURE__ */ jsxRuntime.jsx(TasksProvider, { config, children: /* @__PURE__ */ jsxRuntime.jsx(WrappedComponent, { ...rest }) });
|
60
|
-
};
|
61
|
-
exports.TasksProvider = TasksProvider;
|
62
|
-
exports.withTasksContext = withTasksContext;
|
4
|
+
const TasksContext = React.createContext({});
|
5
|
+
const useTasks = () => React.useContext(TasksContext);
|
6
|
+
exports.TasksContext = TasksContext;
|
7
|
+
exports.useTasks = useTasks;
|
63
8
|
//# sourceMappingURL=harmony109.cjs.map
|
package/dist/harmony109.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony109.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/
|
1
|
+
{"version":3,"file":"harmony109.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarTasksContextProps } from './types'\n\nexport const TasksContext = createContext({} as SidebarTasksContextProps)\n\nexport const useTasks = () => useContext(TasksContext)\n"],"names":["createContext","useContext"],"mappings":";;;AAGa,MAAA,eAAeA,MAAc,cAAA,CAA8B,CAAA;AAE3D,MAAA,WAAW,MAAMC,MAAAA,WAAW,YAAY;;;"}
|
package/dist/harmony109.mjs
CHANGED
@@ -1,63 +1,8 @@
|
|
1
|
-
import {
|
2
|
-
|
3
|
-
|
4
|
-
import { TasksContext } from "./harmony107.mjs";
|
5
|
-
import { TaskEvents } from "./harmony110.mjs";
|
6
|
-
const TasksProvider = ({ children, config }) => {
|
7
|
-
const [tasks, setTasks] = useState([]);
|
8
|
-
const [loadingTasks, setLoadingTasks] = useState(true);
|
9
|
-
const [tasksCount, setTaskCount] = useState(0);
|
10
|
-
const {
|
11
|
-
getProjectUrl,
|
12
|
-
onLanguageCompleteConfirm,
|
13
|
-
onTasksWidgetOpen,
|
14
|
-
langNameOnClick,
|
15
|
-
langProgressOnClick,
|
16
|
-
taskTitleOnClick
|
17
|
-
} = config;
|
18
|
-
const { getTasks, getTasksCount } = config;
|
19
|
-
const fetchTasks = async () => {
|
20
|
-
setLoadingTasks(true);
|
21
|
-
const result = await getTasks();
|
22
|
-
setTasks(result);
|
23
|
-
setLoadingTasks(false);
|
24
|
-
return result;
|
25
|
-
};
|
26
|
-
const fetchTaskCount = async () => {
|
27
|
-
const result = await getTasksCount();
|
28
|
-
setTaskCount(result);
|
29
|
-
};
|
30
|
-
useEffectOnce(() => {
|
31
|
-
fetchTaskCount();
|
32
|
-
document.addEventListener(TaskEvents.TaskCompleted, fetchTaskCount);
|
33
|
-
document.addEventListener(TaskEvents.TaskClosed, fetchTaskCount);
|
34
|
-
document.addEventListener(TaskEvents.Refresh, fetchTaskCount);
|
35
|
-
return () => {
|
36
|
-
document.removeEventListener(TaskEvents.TaskCompleted, fetchTaskCount);
|
37
|
-
document.removeEventListener(TaskEvents.TaskClosed, fetchTaskCount);
|
38
|
-
document.removeEventListener(TaskEvents.Refresh, fetchTaskCount);
|
39
|
-
};
|
40
|
-
});
|
41
|
-
const providerValue = {
|
42
|
-
fetchTasks,
|
43
|
-
tasks,
|
44
|
-
tasksCount,
|
45
|
-
loadingTasks,
|
46
|
-
getProjectUrl,
|
47
|
-
onLanguageCompleteConfirm,
|
48
|
-
onTasksWidgetOpen,
|
49
|
-
langNameOnClick,
|
50
|
-
langProgressOnClick,
|
51
|
-
taskTitleOnClick
|
52
|
-
};
|
53
|
-
return /* @__PURE__ */ jsx(TasksContext.Provider, { value: providerValue, children });
|
54
|
-
};
|
55
|
-
const withTasksContext = (WrappedComponent) => function withTasksContextFn(props) {
|
56
|
-
const { config, ...rest } = props;
|
57
|
-
return /* @__PURE__ */ jsx(TasksProvider, { config, children: /* @__PURE__ */ jsx(WrappedComponent, { ...rest }) });
|
58
|
-
};
|
1
|
+
import { createContext, useContext } from "react";
|
2
|
+
const TasksContext = createContext({});
|
3
|
+
const useTasks = () => useContext(TasksContext);
|
59
4
|
export {
|
60
|
-
|
61
|
-
|
5
|
+
TasksContext,
|
6
|
+
useTasks
|
62
7
|
};
|
63
8
|
//# sourceMappingURL=harmony109.mjs.map
|
package/dist/harmony109.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony109.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/
|
1
|
+
{"version":3,"file":"harmony109.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarTasksContextProps } from './types'\n\nexport const TasksContext = createContext({} as SidebarTasksContextProps)\n\nexport const useTasks = () => useContext(TasksContext)\n"],"names":[],"mappings":";AAGa,MAAA,eAAe,cAAc,CAA8B,CAAA;AAE3D,MAAA,WAAW,MAAM,WAAW,YAAY;"}
|
package/dist/harmony110.cjs
CHANGED
@@ -1,10 +1,43 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
const
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
4
|
+
const louis = require("@lokalise/louis");
|
5
|
+
const useEffectOnce = require("./harmony12.cjs");
|
6
|
+
const TaskOverview = require("./harmony120.cjs");
|
7
|
+
const TasksContext = require("./harmony109.cjs");
|
8
|
+
const taskEvents = require("./harmony112.cjs");
|
9
|
+
const TasksPopover_module = require("./harmony121.cjs");
|
10
|
+
const TasksPopover = () => {
|
11
|
+
const { tasks, onTasksWidgetOpen, loadingTasks, fetchTasks } = TasksContext.useTasks();
|
12
|
+
useEffectOnce.useEffectOnce(() => {
|
13
|
+
const handleTaskPopoverOpen = async () => {
|
14
|
+
const contextTasks = await fetchTasks();
|
15
|
+
onTasksWidgetOpen == null ? void 0 : onTasksWidgetOpen({ tasks: contextTasks });
|
16
|
+
};
|
17
|
+
handleTaskPopoverOpen();
|
18
|
+
document.addEventListener(taskEvents.TaskEvents.TaskCompleted, fetchTasks);
|
19
|
+
document.addEventListener(taskEvents.TaskEvents.TaskClosed, fetchTasks);
|
20
|
+
document.addEventListener(taskEvents.TaskEvents.Refresh, fetchTasks);
|
21
|
+
return () => {
|
22
|
+
document.removeEventListener(taskEvents.TaskEvents.TaskCompleted, fetchTasks);
|
23
|
+
document.removeEventListener(taskEvents.TaskEvents.TaskClosed, fetchTasks);
|
24
|
+
document.removeEventListener(taskEvents.TaskEvents.Refresh, fetchTasks);
|
25
|
+
};
|
26
|
+
});
|
27
|
+
if (loadingTasks) {
|
28
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-testid": "sidebar-tasks-loading-popover", className: TasksPopover_module.default.loadingContainer, children: /* @__PURE__ */ jsxRuntime.jsx(louis.Loading, {}) });
|
29
|
+
}
|
30
|
+
if (tasks.length === 0) {
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "sidebar-no-tasks-popover", className: TasksPopover_module.default.noTasksContainer, children: [
|
32
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: TasksPopover_module.default.noTasksHeading, children: "No tasks" }),
|
33
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: TasksPopover_module.default.noTasksText, children: [
|
34
|
+
"Your incoming tasks will appear here.",
|
35
|
+
/* @__PURE__ */ jsxRuntime.jsx("br", {}),
|
36
|
+
/* @__PURE__ */ jsxRuntime.jsx(louis.Link, { href: "https://docs.lokalise.com/translation-workflow/tasks", target: "_new", children: "Learn more" })
|
37
|
+
] })
|
38
|
+
] });
|
39
|
+
}
|
40
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-testid": "sidebar-tasks-popover", className: TasksPopover_module.default.tasksContainer, children: tasks.map((task) => /* @__PURE__ */ jsxRuntime.jsx(TaskOverview.TaskOverview, { task }, task.id)) });
|
8
41
|
};
|
9
|
-
exports.
|
42
|
+
exports.TasksPopover = TasksPopover;
|
10
43
|
//# sourceMappingURL=harmony110.cjs.map
|
package/dist/harmony110.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony110.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/
|
1
|
+
{"version":3,"file":"harmony110.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksPopover/TasksPopover.tsx"],"sourcesContent":["import { Link, Loading } from '@lokalise/louis'\nimport { useEffectOnce } from '@utils'\nimport { TaskOverview } from '../TaskOverview/TaskOverview'\nimport { useTasks } from '../TasksContext'\nimport type { SidebarTask } from '../types'\nimport { TaskEvents } from '../utils/taskEvents'\nimport styles from './TasksPopover.module.css'\n\nexport const TasksPopover = () => {\n\tconst { tasks, onTasksWidgetOpen, loadingTasks, fetchTasks } = useTasks()\n\n\tuseEffectOnce(() => {\n\t\tconst handleTaskPopoverOpen = async () => {\n\t\t\tconst contextTasks = await fetchTasks()\n\t\t\tonTasksWidgetOpen?.({ tasks: contextTasks })\n\t\t}\n\n\t\thandleTaskPopoverOpen()\n\n\t\tdocument.addEventListener(TaskEvents.TaskCompleted, fetchTasks)\n\t\tdocument.addEventListener(TaskEvents.TaskClosed, fetchTasks)\n\t\tdocument.addEventListener(TaskEvents.Refresh, fetchTasks)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.TaskCompleted, fetchTasks)\n\t\t\tdocument.removeEventListener(TaskEvents.TaskClosed, fetchTasks)\n\t\t\tdocument.removeEventListener(TaskEvents.Refresh, fetchTasks)\n\t\t}\n\t})\n\n\tif (loadingTasks) {\n\t\treturn (\n\t\t\t<div data-testid=\"sidebar-tasks-loading-popover\" className={styles.loadingContainer}>\n\t\t\t\t<Loading />\n\t\t\t</div>\n\t\t)\n\t}\n\n\tif (tasks.length === 0) {\n\t\treturn (\n\t\t\t<div data-testid=\"sidebar-no-tasks-popover\" className={styles.noTasksContainer}>\n\t\t\t\t<h3 className={styles.noTasksHeading}>No tasks</h3>\n\t\t\t\t<div className={styles.noTasksText}>\n\t\t\t\t\tYour incoming tasks will appear here.\n\t\t\t\t\t<br />\n\t\t\t\t\t<Link href=\"https://docs.lokalise.com/translation-workflow/tasks\" target=\"_new\">\n\t\t\t\t\t\tLearn more\n\t\t\t\t\t</Link>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<div data-testid=\"sidebar-tasks-popover\" className={styles.tasksContainer}>\n\t\t\t{tasks.map((task: SidebarTask) => (\n\t\t\t\t<TaskOverview key={task.id} task={task} />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":["useTasks","useEffectOnce","TaskEvents","jsx","styles","Loading","jsxs","Link","TaskOverview"],"mappings":";;;;;;;;;AAQO,MAAM,eAAe,MAAM;AACjC,QAAM,EAAE,OAAO,mBAAmB,cAAc,WAAA,IAAeA,aAAAA,SAAS;AAExEC,gBAAAA,cAAc,MAAM;AACnB,UAAM,wBAAwB,YAAY;AACnC,YAAA,eAAe,MAAM,WAAW;AAClB,6DAAA,EAAE,OAAO;IAC9B;AAEsB,0BAAA;AAEb,aAAA,iBAAiBC,sBAAW,eAAe,UAAU;AACrD,aAAA,iBAAiBA,sBAAW,YAAY,UAAU;AAClD,aAAA,iBAAiBA,sBAAW,SAAS,UAAU;AAExD,WAAO,MAAM;AACH,eAAA,oBAAoBA,sBAAW,eAAe,UAAU;AACxD,eAAA,oBAAoBA,sBAAW,YAAY,UAAU;AACrD,eAAA,oBAAoBA,sBAAW,SAAS,UAAU;AAAA,IAC5D;AAAA,EAAA,CACA;AAED,MAAI,cAAc;AAEhB,WAAAC,2BAAA,IAAC,SAAI,eAAY,iCAAgC,WAAWC,4BAAO,kBAClE,UAACD,2BAAAA,IAAAE,MAAAA,SAAA,CAAA,CAAQ,EACV,CAAA;AAAA,EAAA;AAIE,MAAA,MAAM,WAAW,GAAG;AACvB,2CACE,OAAI,EAAA,eAAY,4BAA2B,WAAWD,oBAAAA,QAAO,kBAC7D,UAAA;AAAA,MAAAD,2BAAA,IAAC,MAAG,EAAA,WAAWC,oBAAO,QAAA,gBAAgB,UAAQ,YAAA;AAAA,MAC7CE,2BAAA,KAAA,OAAA,EAAI,WAAWF,oBAAAA,QAAO,aAAa,UAAA;AAAA,QAAA;AAAA,uCAElC,MAAG,EAAA;AAAA,uCACHG,MAAAA,MAAK,EAAA,MAAK,wDAAuD,QAAO,QAAO,UAEhF,aAAA,CAAA;AAAA,MAAA,EACD,CAAA;AAAA,IAAA,GACD;AAAA,EAAA;AAIF,wCACE,OAAI,EAAA,eAAY,yBAAwB,WAAWH,oBAAAA,QAAO,gBACzD,UAAA,MAAM,IAAI,CAAC,SACVD,2BAAA,IAAAK,2BAAA,EAA2B,QAAT,KAAK,EAAgB,CACxC,GACF;AAEF;;"}
|
package/dist/harmony110.mjs
CHANGED
@@ -1,10 +1,43 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
2
|
+
import { Loading, Link } from "@lokalise/louis";
|
3
|
+
import { useEffectOnce } from "./harmony12.mjs";
|
4
|
+
import { TaskOverview } from "./harmony120.mjs";
|
5
|
+
import { useTasks } from "./harmony109.mjs";
|
6
|
+
import { TaskEvents } from "./harmony112.mjs";
|
7
|
+
import styles from "./harmony121.mjs";
|
8
|
+
const TasksPopover = () => {
|
9
|
+
const { tasks, onTasksWidgetOpen, loadingTasks, fetchTasks } = useTasks();
|
10
|
+
useEffectOnce(() => {
|
11
|
+
const handleTaskPopoverOpen = async () => {
|
12
|
+
const contextTasks = await fetchTasks();
|
13
|
+
onTasksWidgetOpen == null ? void 0 : onTasksWidgetOpen({ tasks: contextTasks });
|
14
|
+
};
|
15
|
+
handleTaskPopoverOpen();
|
16
|
+
document.addEventListener(TaskEvents.TaskCompleted, fetchTasks);
|
17
|
+
document.addEventListener(TaskEvents.TaskClosed, fetchTasks);
|
18
|
+
document.addEventListener(TaskEvents.Refresh, fetchTasks);
|
19
|
+
return () => {
|
20
|
+
document.removeEventListener(TaskEvents.TaskCompleted, fetchTasks);
|
21
|
+
document.removeEventListener(TaskEvents.TaskClosed, fetchTasks);
|
22
|
+
document.removeEventListener(TaskEvents.Refresh, fetchTasks);
|
23
|
+
};
|
24
|
+
});
|
25
|
+
if (loadingTasks) {
|
26
|
+
return /* @__PURE__ */ jsx("div", { "data-testid": "sidebar-tasks-loading-popover", className: styles.loadingContainer, children: /* @__PURE__ */ jsx(Loading, {}) });
|
27
|
+
}
|
28
|
+
if (tasks.length === 0) {
|
29
|
+
return /* @__PURE__ */ jsxs("div", { "data-testid": "sidebar-no-tasks-popover", className: styles.noTasksContainer, children: [
|
30
|
+
/* @__PURE__ */ jsx("h3", { className: styles.noTasksHeading, children: "No tasks" }),
|
31
|
+
/* @__PURE__ */ jsxs("div", { className: styles.noTasksText, children: [
|
32
|
+
"Your incoming tasks will appear here.",
|
33
|
+
/* @__PURE__ */ jsx("br", {}),
|
34
|
+
/* @__PURE__ */ jsx(Link, { href: "https://docs.lokalise.com/translation-workflow/tasks", target: "_new", children: "Learn more" })
|
35
|
+
] })
|
36
|
+
] });
|
37
|
+
}
|
38
|
+
return /* @__PURE__ */ jsx("div", { "data-testid": "sidebar-tasks-popover", className: styles.tasksContainer, children: tasks.map((task) => /* @__PURE__ */ jsx(TaskOverview, { task }, task.id)) });
|
6
39
|
};
|
7
40
|
export {
|
8
|
-
|
41
|
+
TasksPopover
|
9
42
|
};
|
10
43
|
//# sourceMappingURL=harmony110.mjs.map
|
package/dist/harmony110.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony110.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/
|
1
|
+
{"version":3,"file":"harmony110.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksPopover/TasksPopover.tsx"],"sourcesContent":["import { Link, Loading } from '@lokalise/louis'\nimport { useEffectOnce } from '@utils'\nimport { TaskOverview } from '../TaskOverview/TaskOverview'\nimport { useTasks } from '../TasksContext'\nimport type { SidebarTask } from '../types'\nimport { TaskEvents } from '../utils/taskEvents'\nimport styles from './TasksPopover.module.css'\n\nexport const TasksPopover = () => {\n\tconst { tasks, onTasksWidgetOpen, loadingTasks, fetchTasks } = useTasks()\n\n\tuseEffectOnce(() => {\n\t\tconst handleTaskPopoverOpen = async () => {\n\t\t\tconst contextTasks = await fetchTasks()\n\t\t\tonTasksWidgetOpen?.({ tasks: contextTasks })\n\t\t}\n\n\t\thandleTaskPopoverOpen()\n\n\t\tdocument.addEventListener(TaskEvents.TaskCompleted, fetchTasks)\n\t\tdocument.addEventListener(TaskEvents.TaskClosed, fetchTasks)\n\t\tdocument.addEventListener(TaskEvents.Refresh, fetchTasks)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.TaskCompleted, fetchTasks)\n\t\t\tdocument.removeEventListener(TaskEvents.TaskClosed, fetchTasks)\n\t\t\tdocument.removeEventListener(TaskEvents.Refresh, fetchTasks)\n\t\t}\n\t})\n\n\tif (loadingTasks) {\n\t\treturn (\n\t\t\t<div data-testid=\"sidebar-tasks-loading-popover\" className={styles.loadingContainer}>\n\t\t\t\t<Loading />\n\t\t\t</div>\n\t\t)\n\t}\n\n\tif (tasks.length === 0) {\n\t\treturn (\n\t\t\t<div data-testid=\"sidebar-no-tasks-popover\" className={styles.noTasksContainer}>\n\t\t\t\t<h3 className={styles.noTasksHeading}>No tasks</h3>\n\t\t\t\t<div className={styles.noTasksText}>\n\t\t\t\t\tYour incoming tasks will appear here.\n\t\t\t\t\t<br />\n\t\t\t\t\t<Link href=\"https://docs.lokalise.com/translation-workflow/tasks\" target=\"_new\">\n\t\t\t\t\t\tLearn more\n\t\t\t\t\t</Link>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<div data-testid=\"sidebar-tasks-popover\" className={styles.tasksContainer}>\n\t\t\t{tasks.map((task: SidebarTask) => (\n\t\t\t\t<TaskOverview key={task.id} task={task} />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,eAAe,MAAM;AACjC,QAAM,EAAE,OAAO,mBAAmB,cAAc,WAAA,IAAe,SAAS;AAExE,gBAAc,MAAM;AACnB,UAAM,wBAAwB,YAAY;AACnC,YAAA,eAAe,MAAM,WAAW;AAClB,6DAAA,EAAE,OAAO;IAC9B;AAEsB,0BAAA;AAEb,aAAA,iBAAiB,WAAW,eAAe,UAAU;AACrD,aAAA,iBAAiB,WAAW,YAAY,UAAU;AAClD,aAAA,iBAAiB,WAAW,SAAS,UAAU;AAExD,WAAO,MAAM;AACH,eAAA,oBAAoB,WAAW,eAAe,UAAU;AACxD,eAAA,oBAAoB,WAAW,YAAY,UAAU;AACrD,eAAA,oBAAoB,WAAW,SAAS,UAAU;AAAA,IAC5D;AAAA,EAAA,CACA;AAED,MAAI,cAAc;AAEhB,WAAA,oBAAC,SAAI,eAAY,iCAAgC,WAAW,OAAO,kBAClE,UAAC,oBAAA,SAAA,CAAA,CAAQ,EACV,CAAA;AAAA,EAAA;AAIE,MAAA,MAAM,WAAW,GAAG;AACvB,gCACE,OAAI,EAAA,eAAY,4BAA2B,WAAW,OAAO,kBAC7D,UAAA;AAAA,MAAA,oBAAC,MAAG,EAAA,WAAW,OAAO,gBAAgB,UAAQ,YAAA;AAAA,MAC7C,qBAAA,OAAA,EAAI,WAAW,OAAO,aAAa,UAAA;AAAA,QAAA;AAAA,4BAElC,MAAG,EAAA;AAAA,4BACH,MAAK,EAAA,MAAK,wDAAuD,QAAO,QAAO,UAEhF,aAAA,CAAA;AAAA,MAAA,EACD,CAAA;AAAA,IAAA,GACD;AAAA,EAAA;AAIF,6BACE,OAAI,EAAA,eAAY,yBAAwB,WAAW,OAAO,gBACzD,UAAA,MAAM,IAAI,CAAC,SACV,oBAAA,cAAA,EAA2B,QAAT,KAAK,EAAgB,CACxC,GACF;AAEF;"}
|
package/dist/harmony111.cjs
CHANGED
@@ -1,9 +1,63 @@
|
|
1
1
|
"use strict";
|
2
|
-
Object.
|
3
|
-
const
|
4
|
-
const
|
5
|
-
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
4
|
+
const useEffectOnce = require("./harmony12.cjs");
|
5
|
+
const React = require("react");
|
6
|
+
const TasksContext = require("./harmony109.cjs");
|
7
|
+
const taskEvents = require("./harmony112.cjs");
|
8
|
+
const TasksProvider = ({ children, config }) => {
|
9
|
+
const [tasks, setTasks] = React.useState([]);
|
10
|
+
const [loadingTasks, setLoadingTasks] = React.useState(true);
|
11
|
+
const [tasksCount, setTaskCount] = React.useState(0);
|
12
|
+
const {
|
13
|
+
getProjectUrl,
|
14
|
+
onLanguageCompleteConfirm,
|
15
|
+
onTasksWidgetOpen,
|
16
|
+
langNameOnClick,
|
17
|
+
langProgressOnClick,
|
18
|
+
taskTitleOnClick
|
19
|
+
} = config;
|
20
|
+
const { getTasks, getTasksCount } = config;
|
21
|
+
const fetchTasks = async () => {
|
22
|
+
setLoadingTasks(true);
|
23
|
+
const result = await getTasks();
|
24
|
+
setTasks(result);
|
25
|
+
setLoadingTasks(false);
|
26
|
+
return result;
|
27
|
+
};
|
28
|
+
const fetchTaskCount = async () => {
|
29
|
+
const result = await getTasksCount();
|
30
|
+
setTaskCount(result);
|
31
|
+
};
|
32
|
+
useEffectOnce.useEffectOnce(() => {
|
33
|
+
fetchTaskCount();
|
34
|
+
document.addEventListener(taskEvents.TaskEvents.TaskCompleted, fetchTaskCount);
|
35
|
+
document.addEventListener(taskEvents.TaskEvents.TaskClosed, fetchTaskCount);
|
36
|
+
document.addEventListener(taskEvents.TaskEvents.Refresh, fetchTaskCount);
|
37
|
+
return () => {
|
38
|
+
document.removeEventListener(taskEvents.TaskEvents.TaskCompleted, fetchTaskCount);
|
39
|
+
document.removeEventListener(taskEvents.TaskEvents.TaskClosed, fetchTaskCount);
|
40
|
+
document.removeEventListener(taskEvents.TaskEvents.Refresh, fetchTaskCount);
|
41
|
+
};
|
42
|
+
});
|
43
|
+
const providerValue = {
|
44
|
+
fetchTasks,
|
45
|
+
tasks,
|
46
|
+
tasksCount,
|
47
|
+
loadingTasks,
|
48
|
+
getProjectUrl,
|
49
|
+
onLanguageCompleteConfirm,
|
50
|
+
onTasksWidgetOpen,
|
51
|
+
langNameOnClick,
|
52
|
+
langProgressOnClick,
|
53
|
+
taskTitleOnClick
|
54
|
+
};
|
55
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TasksContext.TasksContext.Provider, { value: providerValue, children });
|
6
56
|
};
|
7
|
-
|
8
|
-
|
57
|
+
const withTasksContext = (WrappedComponent) => function withTasksContextFn(props) {
|
58
|
+
const { config, ...rest } = props;
|
59
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TasksProvider, { config, children: /* @__PURE__ */ jsxRuntime.jsx(WrappedComponent, { ...rest }) });
|
60
|
+
};
|
61
|
+
exports.TasksProvider = TasksProvider;
|
62
|
+
exports.withTasksContext = withTasksContext;
|
9
63
|
//# sourceMappingURL=harmony111.cjs.map
|
package/dist/harmony111.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony111.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"harmony111.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksProvider.tsx"],"sourcesContent":["import { useEffectOnce } from '@utils'\nimport { type FC, type PropsWithChildren, useState } from 'react'\nimport { TasksContext } from './TasksContext'\nimport type { SidebarTask, SidebarTasksConfig, SidebarTasksContextProps } from './types'\nimport { TaskEvents } from './utils/taskEvents'\n\ntype TasksProviderProps = PropsWithChildren<{\n\tconfig: SidebarTasksConfig\n}>\n\nexport const TasksProvider = ({ children, config }: TasksProviderProps) => {\n\tconst [tasks, setTasks] = useState<SidebarTask[]>([])\n\tconst [loadingTasks, setLoadingTasks] = useState(true)\n\n\tconst [tasksCount, setTaskCount] = useState(0)\n\n\tconst {\n\t\tgetProjectUrl,\n\t\tonLanguageCompleteConfirm,\n\t\tonTasksWidgetOpen,\n\t\tlangNameOnClick,\n\t\tlangProgressOnClick,\n\t\ttaskTitleOnClick,\n\t} = config\n\n\tconst { getTasks, getTasksCount } = config\n\n\tconst fetchTasks = async () => {\n\t\tsetLoadingTasks(true)\n\t\tconst result = await getTasks()\n\t\tsetTasks(result)\n\t\tsetLoadingTasks(false)\n\t\treturn result\n\t}\n\n\tconst fetchTaskCount = async () => {\n\t\tconst result = await getTasksCount()\n\t\tsetTaskCount(result)\n\t}\n\n\tuseEffectOnce(() => {\n\t\tfetchTaskCount()\n\n\t\tdocument.addEventListener(TaskEvents.TaskCompleted, fetchTaskCount)\n\t\tdocument.addEventListener(TaskEvents.TaskClosed, fetchTaskCount)\n\t\tdocument.addEventListener(TaskEvents.Refresh, fetchTaskCount)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.TaskCompleted, fetchTaskCount)\n\t\t\tdocument.removeEventListener(TaskEvents.TaskClosed, fetchTaskCount)\n\t\t\tdocument.removeEventListener(TaskEvents.Refresh, fetchTaskCount)\n\t\t}\n\t})\n\n\tconst providerValue: SidebarTasksContextProps = {\n\t\tfetchTasks,\n\t\ttasks,\n\t\ttasksCount,\n\t\tloadingTasks,\n\t\tgetProjectUrl,\n\t\tonLanguageCompleteConfirm,\n\t\tonTasksWidgetOpen,\n\t\tlangNameOnClick,\n\t\tlangProgressOnClick,\n\t\ttaskTitleOnClick,\n\t}\n\n\treturn <TasksContext.Provider value={providerValue}>{children}</TasksContext.Provider>\n}\n\nexport const withTasksContext = <P extends { config: SidebarTasksConfig }>(\n\tWrappedComponent: FC<Omit<P, 'config'>>,\n) =>\n\tfunction withTasksContextFn(props: P) {\n\t\tconst { config, ...rest } = props\n\n\t\treturn (\n\t\t\t<TasksProvider config={config}>\n\t\t\t\t<WrappedComponent {...rest} />\n\t\t\t</TasksProvider>\n\t\t)\n\t}\n"],"names":["useState","useEffectOnce","TaskEvents","TasksContext"],"mappings":";;;;;;;AAUO,MAAM,gBAAgB,CAAC,EAAE,UAAU,aAAiC;AAC1E,QAAM,CAAC,OAAO,QAAQ,IAAIA,MAAAA,SAAwB,CAAA,CAAE;AACpD,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA,SAAS,IAAI;AAErD,QAAM,CAAC,YAAY,YAAY,IAAIA,MAAAA,SAAS,CAAC;AAEvC,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAEE,QAAA,EAAE,UAAU,cAAA,IAAkB;AAEpC,QAAM,aAAa,YAAY;AAC9B,oBAAgB,IAAI;AACd,UAAA,SAAS,MAAM,SAAS;AAC9B,aAAS,MAAM;AACf,oBAAgB,KAAK;AACd,WAAA;AAAA,EACR;AAEA,QAAM,iBAAiB,YAAY;AAC5B,UAAA,SAAS,MAAM,cAAc;AACnC,iBAAa,MAAM;AAAA,EACpB;AAEAC,gBAAAA,cAAc,MAAM;AACJ,mBAAA;AAEN,aAAA,iBAAiBC,sBAAW,eAAe,cAAc;AACzD,aAAA,iBAAiBA,sBAAW,YAAY,cAAc;AACtD,aAAA,iBAAiBA,sBAAW,SAAS,cAAc;AAE5D,WAAO,MAAM;AACH,eAAA,oBAAoBA,sBAAW,eAAe,cAAc;AAC5D,eAAA,oBAAoBA,sBAAW,YAAY,cAAc;AACzD,eAAA,oBAAoBA,sBAAW,SAAS,cAAc;AAAA,IAChE;AAAA,EAAA,CACA;AAED,QAAM,gBAA0C;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,wCAAQC,aAAAA,aAAa,UAAb,EAAsB,OAAO,eAAgB,UAAS;AAC/D;AAEO,MAAM,mBAAmB,CAC/B,qBAEA,SAAS,mBAAmB,OAAU;AACrC,QAAM,EAAE,QAAQ,GAAG,KAAA,IAAS;AAE5B,wCACE,eAAc,EAAA,QACd,yCAAC,kBAAkB,EAAA,GAAG,KAAM,CAAA,GAC7B;AAEF;;;"}
|
package/dist/harmony111.mjs
CHANGED
@@ -1,9 +1,63 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
2
|
+
import { useEffectOnce } from "./harmony12.mjs";
|
3
|
+
import { useState } from "react";
|
4
|
+
import { TasksContext } from "./harmony109.mjs";
|
5
|
+
import { TaskEvents } from "./harmony112.mjs";
|
6
|
+
const TasksProvider = ({ children, config }) => {
|
7
|
+
const [tasks, setTasks] = useState([]);
|
8
|
+
const [loadingTasks, setLoadingTasks] = useState(true);
|
9
|
+
const [tasksCount, setTaskCount] = useState(0);
|
10
|
+
const {
|
11
|
+
getProjectUrl,
|
12
|
+
onLanguageCompleteConfirm,
|
13
|
+
onTasksWidgetOpen,
|
14
|
+
langNameOnClick,
|
15
|
+
langProgressOnClick,
|
16
|
+
taskTitleOnClick
|
17
|
+
} = config;
|
18
|
+
const { getTasks, getTasksCount } = config;
|
19
|
+
const fetchTasks = async () => {
|
20
|
+
setLoadingTasks(true);
|
21
|
+
const result = await getTasks();
|
22
|
+
setTasks(result);
|
23
|
+
setLoadingTasks(false);
|
24
|
+
return result;
|
25
|
+
};
|
26
|
+
const fetchTaskCount = async () => {
|
27
|
+
const result = await getTasksCount();
|
28
|
+
setTaskCount(result);
|
29
|
+
};
|
30
|
+
useEffectOnce(() => {
|
31
|
+
fetchTaskCount();
|
32
|
+
document.addEventListener(TaskEvents.TaskCompleted, fetchTaskCount);
|
33
|
+
document.addEventListener(TaskEvents.TaskClosed, fetchTaskCount);
|
34
|
+
document.addEventListener(TaskEvents.Refresh, fetchTaskCount);
|
35
|
+
return () => {
|
36
|
+
document.removeEventListener(TaskEvents.TaskCompleted, fetchTaskCount);
|
37
|
+
document.removeEventListener(TaskEvents.TaskClosed, fetchTaskCount);
|
38
|
+
document.removeEventListener(TaskEvents.Refresh, fetchTaskCount);
|
39
|
+
};
|
40
|
+
});
|
41
|
+
const providerValue = {
|
42
|
+
fetchTasks,
|
43
|
+
tasks,
|
44
|
+
tasksCount,
|
45
|
+
loadingTasks,
|
46
|
+
getProjectUrl,
|
47
|
+
onLanguageCompleteConfirm,
|
48
|
+
onTasksWidgetOpen,
|
49
|
+
langNameOnClick,
|
50
|
+
langProgressOnClick,
|
51
|
+
taskTitleOnClick
|
52
|
+
};
|
53
|
+
return /* @__PURE__ */ jsx(TasksContext.Provider, { value: providerValue, children });
|
54
|
+
};
|
55
|
+
const withTasksContext = (WrappedComponent) => function withTasksContextFn(props) {
|
56
|
+
const { config, ...rest } = props;
|
57
|
+
return /* @__PURE__ */ jsx(TasksProvider, { config, children: /* @__PURE__ */ jsx(WrappedComponent, { ...rest }) });
|
4
58
|
};
|
5
59
|
export {
|
6
|
-
|
7
|
-
|
60
|
+
TasksProvider,
|
61
|
+
withTasksContext
|
8
62
|
};
|
9
63
|
//# sourceMappingURL=harmony111.mjs.map
|
package/dist/harmony111.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony111.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"harmony111.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/TasksProvider.tsx"],"sourcesContent":["import { useEffectOnce } from '@utils'\nimport { type FC, type PropsWithChildren, useState } from 'react'\nimport { TasksContext } from './TasksContext'\nimport type { SidebarTask, SidebarTasksConfig, SidebarTasksContextProps } from './types'\nimport { TaskEvents } from './utils/taskEvents'\n\ntype TasksProviderProps = PropsWithChildren<{\n\tconfig: SidebarTasksConfig\n}>\n\nexport const TasksProvider = ({ children, config }: TasksProviderProps) => {\n\tconst [tasks, setTasks] = useState<SidebarTask[]>([])\n\tconst [loadingTasks, setLoadingTasks] = useState(true)\n\n\tconst [tasksCount, setTaskCount] = useState(0)\n\n\tconst {\n\t\tgetProjectUrl,\n\t\tonLanguageCompleteConfirm,\n\t\tonTasksWidgetOpen,\n\t\tlangNameOnClick,\n\t\tlangProgressOnClick,\n\t\ttaskTitleOnClick,\n\t} = config\n\n\tconst { getTasks, getTasksCount } = config\n\n\tconst fetchTasks = async () => {\n\t\tsetLoadingTasks(true)\n\t\tconst result = await getTasks()\n\t\tsetTasks(result)\n\t\tsetLoadingTasks(false)\n\t\treturn result\n\t}\n\n\tconst fetchTaskCount = async () => {\n\t\tconst result = await getTasksCount()\n\t\tsetTaskCount(result)\n\t}\n\n\tuseEffectOnce(() => {\n\t\tfetchTaskCount()\n\n\t\tdocument.addEventListener(TaskEvents.TaskCompleted, fetchTaskCount)\n\t\tdocument.addEventListener(TaskEvents.TaskClosed, fetchTaskCount)\n\t\tdocument.addEventListener(TaskEvents.Refresh, fetchTaskCount)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.TaskCompleted, fetchTaskCount)\n\t\t\tdocument.removeEventListener(TaskEvents.TaskClosed, fetchTaskCount)\n\t\t\tdocument.removeEventListener(TaskEvents.Refresh, fetchTaskCount)\n\t\t}\n\t})\n\n\tconst providerValue: SidebarTasksContextProps = {\n\t\tfetchTasks,\n\t\ttasks,\n\t\ttasksCount,\n\t\tloadingTasks,\n\t\tgetProjectUrl,\n\t\tonLanguageCompleteConfirm,\n\t\tonTasksWidgetOpen,\n\t\tlangNameOnClick,\n\t\tlangProgressOnClick,\n\t\ttaskTitleOnClick,\n\t}\n\n\treturn <TasksContext.Provider value={providerValue}>{children}</TasksContext.Provider>\n}\n\nexport const withTasksContext = <P extends { config: SidebarTasksConfig }>(\n\tWrappedComponent: FC<Omit<P, 'config'>>,\n) =>\n\tfunction withTasksContextFn(props: P) {\n\t\tconst { config, ...rest } = props\n\n\t\treturn (\n\t\t\t<TasksProvider config={config}>\n\t\t\t\t<WrappedComponent {...rest} />\n\t\t\t</TasksProvider>\n\t\t)\n\t}\n"],"names":[],"mappings":";;;;;AAUO,MAAM,gBAAgB,CAAC,EAAE,UAAU,aAAiC;AAC1E,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,CAAA,CAAE;AACpD,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,IAAI;AAErD,QAAM,CAAC,YAAY,YAAY,IAAI,SAAS,CAAC;AAEvC,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAEE,QAAA,EAAE,UAAU,cAAA,IAAkB;AAEpC,QAAM,aAAa,YAAY;AAC9B,oBAAgB,IAAI;AACd,UAAA,SAAS,MAAM,SAAS;AAC9B,aAAS,MAAM;AACf,oBAAgB,KAAK;AACd,WAAA;AAAA,EACR;AAEA,QAAM,iBAAiB,YAAY;AAC5B,UAAA,SAAS,MAAM,cAAc;AACnC,iBAAa,MAAM;AAAA,EACpB;AAEA,gBAAc,MAAM;AACJ,mBAAA;AAEN,aAAA,iBAAiB,WAAW,eAAe,cAAc;AACzD,aAAA,iBAAiB,WAAW,YAAY,cAAc;AACtD,aAAA,iBAAiB,WAAW,SAAS,cAAc;AAE5D,WAAO,MAAM;AACH,eAAA,oBAAoB,WAAW,eAAe,cAAc;AAC5D,eAAA,oBAAoB,WAAW,YAAY,cAAc;AACzD,eAAA,oBAAoB,WAAW,SAAS,cAAc;AAAA,IAChE;AAAA,EAAA,CACA;AAED,QAAM,gBAA0C;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,6BAAQ,aAAa,UAAb,EAAsB,OAAO,eAAgB,UAAS;AAC/D;AAEO,MAAM,mBAAmB,CAC/B,qBAEA,SAAS,mBAAmB,OAAU;AACrC,QAAM,EAAE,QAAQ,GAAG,KAAA,IAAS;AAE5B,6BACE,eAAc,EAAA,QACd,8BAAC,kBAAkB,EAAA,GAAG,KAAM,CAAA,GAC7B;AAEF;"}
|
package/dist/harmony112.cjs
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
"use strict";
|
2
|
-
Object.
|
3
|
-
const
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
+
const TaskEvents = {
|
4
|
+
TaskCompleted: "task_completed",
|
5
|
+
TaskClosed: "task_closed",
|
6
|
+
Refresh: "refresh",
|
7
|
+
ShowDialog: "show_dialog"
|
8
|
+
};
|
9
|
+
exports.TaskEvents = TaskEvents;
|
8
10
|
//# sourceMappingURL=harmony112.cjs.map
|
package/dist/harmony112.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony112.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"harmony112.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/utils/taskEvents.ts"],"sourcesContent":["import type { TypesFromMap } from '@utils'\n\nexport const TaskEvents = {\n\tTaskCompleted: 'task_completed',\n\tTaskClosed: 'task_closed',\n\tRefresh: 'refresh',\n\tShowDialog: 'show_dialog',\n} as const\n\nexport type TaskEvent = TypesFromMap<typeof TaskEvents>\n\ntype SingleTaskPayload = {\n\ttaskId: string | number\n}\n\ntype DispatchTaskEventPayload =\n\t| {\n\t\t\tname: typeof TaskEvents.TaskCompleted\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.TaskClosed\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.Refresh\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.ShowDialog\n\t }\n\nexport const dispatchTaskEvent = (props: DispatchTaskEventPayload) => {\n\tconst { name } = props\n\tdocument.dispatchEvent(new CustomEvent(name, { detail: 'detail' in props ? props.detail : {} }))\n}\n"],"names":[],"mappings":";;AAEO,MAAM,aAAa;AAAA,EACzB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AACb;;"}
|
package/dist/harmony112.mjs
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
const TaskEvents = {
|
2
|
+
TaskCompleted: "task_completed",
|
3
|
+
TaskClosed: "task_closed",
|
4
|
+
Refresh: "refresh",
|
5
|
+
ShowDialog: "show_dialog"
|
6
|
+
};
|
5
7
|
export {
|
6
|
-
|
8
|
+
TaskEvents
|
7
9
|
};
|
8
10
|
//# sourceMappingURL=harmony112.mjs.map
|
package/dist/harmony112.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony112.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"harmony112.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/utils/taskEvents.ts"],"sourcesContent":["import type { TypesFromMap } from '@utils'\n\nexport const TaskEvents = {\n\tTaskCompleted: 'task_completed',\n\tTaskClosed: 'task_closed',\n\tRefresh: 'refresh',\n\tShowDialog: 'show_dialog',\n} as const\n\nexport type TaskEvent = TypesFromMap<typeof TaskEvents>\n\ntype SingleTaskPayload = {\n\ttaskId: string | number\n}\n\ntype DispatchTaskEventPayload =\n\t| {\n\t\t\tname: typeof TaskEvents.TaskCompleted\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.TaskClosed\n\t\t\tdetail: SingleTaskPayload\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.Refresh\n\t }\n\t| {\n\t\t\tname: typeof TaskEvents.ShowDialog\n\t }\n\nexport const dispatchTaskEvent = (props: DispatchTaskEventPayload) => {\n\tconst { name } = props\n\tdocument.dispatchEvent(new CustomEvent(name, { detail: 'detail' in props ? props.detail : {} }))\n}\n"],"names":[],"mappings":"AAEO,MAAM,aAAa;AAAA,EACzB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AACb;"}
|
package/dist/harmony113.cjs
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
3
|
-
const
|
4
|
-
const
|
5
|
-
|
6
|
-
|
7
|
-
exports.default =
|
3
|
+
const iconContainer = "_iconContainer_nz34m_1";
|
4
|
+
const styles = {
|
5
|
+
iconContainer
|
6
|
+
};
|
7
|
+
exports.default = styles;
|
8
|
+
exports.iconContainer = iconContainer;
|
8
9
|
//# sourceMappingURL=harmony113.cjs.map
|
package/dist/harmony113.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony113.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"harmony113.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
package/dist/harmony113.mjs
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
const iconContainer = "_iconContainer_nz34m_1";
|
2
|
+
const styles = {
|
3
|
+
iconContainer
|
4
|
+
};
|
5
5
|
export {
|
6
|
-
|
6
|
+
styles as default,
|
7
|
+
iconContainer
|
7
8
|
};
|
8
9
|
//# sourceMappingURL=harmony113.mjs.map
|
package/dist/harmony120.cjs
CHANGED
@@ -8,7 +8,7 @@ const date = require("./harmony11.cjs");
|
|
8
8
|
const dateFns = require("date-fns");
|
9
9
|
const index = require("./harmony129.cjs");
|
10
10
|
const TaskLanguage = require("./harmony130.cjs");
|
11
|
-
const TasksContext = require("./
|
11
|
+
const TasksContext = require("./harmony109.cjs");
|
12
12
|
const content = require("./harmony131.cjs");
|
13
13
|
const TaskOverview_module = require("./harmony132.cjs");
|
14
14
|
const TaskOverview = ({ task }) => {
|
package/dist/harmony120.mjs
CHANGED
@@ -6,7 +6,7 @@ import { formatDate } from "./harmony11.mjs";
|
|
6
6
|
import { parseISO } from "date-fns";
|
7
7
|
import { splitFileName } from "./harmony129.mjs";
|
8
8
|
import { TaskLanguage } from "./harmony130.mjs";
|
9
|
-
import { useTasks } from "./
|
9
|
+
import { useTasks } from "./harmony109.mjs";
|
10
10
|
import { getTaskLanguages, tagColor } from "./harmony131.mjs";
|
11
11
|
import styles from "./harmony132.mjs";
|
12
12
|
const TaskOverview = ({ task }) => {
|
package/dist/harmony13.cjs
CHANGED
@@ -3,10 +3,17 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const createHeaderBuilderMiddleware = require("./harmony18.cjs");
|
4
4
|
const jwtTokenPayload = require("./harmony16.cjs");
|
5
5
|
const UnauthorizedError = require("./harmony15.cjs");
|
6
|
+
const NewJwtIssuedEvent = require("./harmony101.cjs");
|
6
7
|
function JwtAuthHeaderBuilderMiddleware(props) {
|
7
8
|
return createHeaderBuilderMiddleware.createHeaderBuilderMiddleware(async (builder) => {
|
8
9
|
var _a, _b;
|
9
|
-
|
10
|
+
let token = props.getCurrentToken();
|
11
|
+
if (!token) {
|
12
|
+
token = await ((_a = props.generateNewToken) == null ? void 0 : _a.call(props)) ?? null;
|
13
|
+
if (token) {
|
14
|
+
window == null ? void 0 : window.dispatchEvent(new NewJwtIssuedEvent.NewJwtIssuedEvent(token));
|
15
|
+
}
|
16
|
+
}
|
10
17
|
if (!token) {
|
11
18
|
throw new UnauthorizedError.UnauthorizedError();
|
12
19
|
}
|
package/dist/harmony13.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"harmony13.cjs","sources":["../src/features/auth/core/middleware/jwtAuthHeaderBuilderMiddleware.ts"],"sourcesContent":["import { createHeaderBuilderMiddleware } from '@features/auth/core/headers/createHeaderBuilderMiddleware'\nimport { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport { UnauthorizedError } from '@features/auth/errors/UnauthorizedError'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\n\nexport type JwtAuthHeaderBuilderMiddlewareProps = {\n\trefreshToken: (current: JwtToken) => Promise<JwtToken | null>\n\tgetCurrentToken: () => JwtToken | null\n\tgenerateNewToken?: () => Promise<JwtToken | null>\n\tonNewTokenIssued?: (token: JwtToken) => void\n}\n\nexport function JwtAuthHeaderBuilderMiddleware(props: JwtAuthHeaderBuilderMiddlewareProps) {\n\treturn createHeaderBuilderMiddleware(async (builder) => {\n\t\
|
1
|
+
{"version":3,"file":"harmony13.cjs","sources":["../src/features/auth/core/middleware/jwtAuthHeaderBuilderMiddleware.ts"],"sourcesContent":["import { createHeaderBuilderMiddleware } from '@features/auth/core/headers/createHeaderBuilderMiddleware'\nimport { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport { UnauthorizedError } from '@features/auth/errors/UnauthorizedError'\nimport { NewJwtIssuedEvent } from '@features/auth/frontend/events/NewJwtIssuedEvent'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\n\nexport type JwtAuthHeaderBuilderMiddlewareProps = {\n\trefreshToken: (current: JwtToken) => Promise<JwtToken | null>\n\tgetCurrentToken: () => JwtToken | null\n\tgenerateNewToken?: () => Promise<JwtToken | null>\n\tonNewTokenIssued?: (token: JwtToken) => void\n}\n\nexport function JwtAuthHeaderBuilderMiddleware(props: JwtAuthHeaderBuilderMiddlewareProps) {\n\treturn createHeaderBuilderMiddleware(async (builder) => {\n\t\t// Check if current token exists\n\t\tlet token = props.getCurrentToken()\n\n\t\tif (!token) {\n\t\t\t// Attempt to generate new token\n\t\t\ttoken = (await props.generateNewToken?.()) ?? null\n\n\t\t\t// If new token is generated, dispatch an event to update payload hooks\n\t\t\tif (token) {\n\t\t\t\twindow?.dispatchEvent(new NewJwtIssuedEvent(token))\n\t\t\t}\n\t\t}\n\n\t\tif (!token) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\t// Check if the token is expired or will expire in less than 5 minutes\n\t\tconst { exp } = parseJwtTokenPayload(token.accessToken) ?? { exp: 0 }\n\t\tconst tokenExpirationInMilliseconds = exp * 1000\n\t\tconst tokenExpirationSafetyMargin = 5 * 60 * 1000 // 5 minutes in milliseconds\n\t\tif (Date.now() < tokenExpirationInMilliseconds - tokenExpirationSafetyMargin) {\n\t\t\treturn builder.add('authorization', `Bearer ${token.accessToken}`)\n\t\t}\n\n\t\tconst newToken = await props.refreshToken(token)\n\n\t\tif (!newToken) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\tprops.onNewTokenIssued?.(newToken)\n\n\t\treturn builder.add('authorization', `Bearer ${newToken.accessToken}`)\n\t})\n}\n"],"names":["createHeaderBuilderMiddleware","NewJwtIssuedEvent","UnauthorizedError","parseJwtTokenPayload"],"mappings":";;;;;;AAaO,SAAS,+BAA+B,OAA4C;AACnF,SAAAA,8BAAAA,8BAA8B,OAAO,YAAY;;AAEnD,QAAA,QAAQ,MAAM,gBAAgB;AAElC,QAAI,CAAC,OAAO;AAEF,cAAA,QAAM,WAAM,qBAAN,mCAA+B;AAG9C,UAAI,OAAO;AACV,yCAAQ,cAAc,IAAIC,kBAAkB,kBAAA,KAAK;AAAA,MAAC;AAAA,IACnD;AAGD,QAAI,CAAC,OAAO;AACX,YAAM,IAAIC,kBAAAA,kBAAkB;AAAA,IAAA;AAIvB,UAAA,EAAE,IAAQ,IAAAC,qCAAqB,MAAM,WAAW,KAAK,EAAE,KAAK,EAAE;AACpE,UAAM,gCAAgC,MAAM;AACtC,UAAA,8BAA8B,IAAI,KAAK;AAC7C,QAAI,KAAK,QAAQ,gCAAgC,6BAA6B;AAC7E,aAAO,QAAQ,IAAI,iBAAiB,UAAU,MAAM,WAAW,EAAE;AAAA,IAAA;AAGlE,UAAM,WAAW,MAAM,MAAM,aAAa,KAAK;AAE/C,QAAI,CAAC,UAAU;AACd,YAAM,IAAID,kBAAAA,kBAAkB;AAAA,IAAA;AAG7B,gBAAM,qBAAN,+BAAyB;AAEzB,WAAO,QAAQ,IAAI,iBAAiB,UAAU,SAAS,WAAW,EAAE;AAAA,EAAA,CACpE;AACF;;"}
|