sea-react-components 1.3.33 → 1.3.35
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/components/cards-list/index.d.ts.map +1 -1
- package/dist/components/cards-list/index.js +0 -1
- package/dist/components/list-item/index.d.ts +7 -4
- package/dist/components/list-item/index.d.ts.map +1 -1
- package/dist/components/list-item/index.js +12 -6
- package/dist/components/menu/index.d.ts +2 -1
- package/dist/components/menu/index.d.ts.map +1 -1
- package/dist/components/menu/index.js +1 -1
- package/dist/components/modal/index.d.ts.map +1 -1
- package/dist/components/modal/index.js +23 -0
- package/dist/components/select/SelectView.d.ts +2 -1
- package/dist/components/select/SelectView.d.ts.map +1 -1
- package/dist/components/select/SelectView.js +2 -2
- package/dist/components/select/index.d.ts +2 -1
- package/dist/components/select/index.d.ts.map +1 -1
- package/dist/components/select/index.js +2 -2
- package/dist/components/tab/index.d.ts +1 -0
- package/dist/components/tab/index.d.ts.map +1 -1
- package/dist/components/toaster/index.d.ts +11 -0
- package/dist/components/toaster/index.d.ts.map +1 -0
- package/dist/components/toaster/index.js +159 -0
- package/dist/components/toaster/toaster-actions/index.d.ts +5 -0
- package/dist/components/toaster/toaster-actions/index.d.ts.map +1 -0
- package/dist/components/toaster/toaster-actions/index.js +26 -0
- package/dist/components/toaster/toaster-card/index.d.ts +24 -0
- package/dist/components/toaster/toaster-card/index.d.ts.map +1 -0
- package/dist/components/toaster/toaster-card/index.js +56 -0
- package/dist/components/toaster/toaster-hook/index.d.ts +2 -0
- package/dist/components/toaster/toaster-hook/index.d.ts.map +1 -0
- package/dist/components/toaster/toaster-hook/index.js +5 -0
- package/dist/components/toaster/toaster-store/index.d.ts +23 -0
- package/dist/components/toaster/toaster-store/index.d.ts.map +1 -0
- package/dist/components/toaster/toaster-store/index.js +15 -0
- package/dist/hooks/use-translation/index.d.ts +179 -1
- package/dist/hooks/use-translation/index.d.ts.map +1 -1
- package/dist/hooks/use-translation/index.js +5 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/providers/socket-provider/index.d.ts +17 -0
- package/dist/providers/socket-provider/index.d.ts.map +1 -0
- package/dist/providers/socket-provider/index.js +60 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/axios/index.d.ts +1 -0
- package/dist/utils/axios/index.d.ts.map +1 -1
- package/dist/utils/axios/index.js +6 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/cards-list/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,eAAO,MAAM,wCAAwC;;;GAKpD,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,IAAI,EAAE,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,GAAG,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,GAAG,CAAC,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAClE,OAAO,CAAC,EAAE;QACR,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,CAAC,EAAE,EACnC,aAAa,EACb,IAAI,EACJ,iBAAiB,EACjB,OAGC,EACD,OAAe,GAChB,EAAE,KAAK,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/cards-list/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,eAAO,MAAM,wCAAwC;;;GAKpD,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,IAAI,EAAE,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,GAAG,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,GAAG,CAAC,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAClE,OAAO,CAAC,EAAE;QACR,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,CAAC,EAAE,EACnC,aAAa,EACb,IAAI,EACJ,iBAAiB,EACjB,OAGC,EACD,OAAe,GAChB,EAAE,KAAK,CAAC,CAAC,CAAC,2CAsCV"}
|
|
@@ -11,7 +11,6 @@ export default function CardsList({ CardComponent, rows, bulkActionFeature, clas
|
|
|
11
11
|
containerClasses: "grid grid-cols-4 gap-2 md:gap-4",
|
|
12
12
|
cardClasses: "col-span-4 md:col-span-2 col-span-1",
|
|
13
13
|
}, loading = false, }) {
|
|
14
|
-
console.log({ rows });
|
|
15
14
|
return (_jsx("div", { children: loading ? (_jsx("div", { className: "flex items-center justify-center", children: _jsx(Loader, {}) })) : (_jsx("div", { className: clsx(classes.containerClasses), children: rows.map((row) => (_jsxs("div", { className: clsx(classes.cardClasses), children: [bulkActionFeature && (_jsx(Checkbox, { checked: bulkActionFeature.selectedRowIds.length === rows.length, onChange: (checked) => {
|
|
16
15
|
if (checked) {
|
|
17
16
|
bulkActionFeature.setSelectedRowIds(rows.map((r) => r.id));
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { SelectOption } from "../select";
|
|
3
3
|
import { BulkActionFeature, Filter } from "../../hooks/list-items-hook/types";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
type ListItemLocalization = {
|
|
5
|
+
searchPlaceholder: (name: string) => string;
|
|
6
|
+
allLabel: string;
|
|
7
|
+
noItemsFound: (itemName: string) => string;
|
|
8
|
+
rowsPerPage: string;
|
|
6
9
|
};
|
|
7
10
|
export type Props<K> = {
|
|
8
11
|
title?: string;
|
|
@@ -26,8 +29,8 @@ export type Props<K> = {
|
|
|
26
29
|
children?: React.ReactNode;
|
|
27
30
|
headerComponent?: React.ReactNode;
|
|
28
31
|
itemName?: string;
|
|
29
|
-
|
|
32
|
+
localizations?: ListItemLocalization;
|
|
30
33
|
};
|
|
31
|
-
export default function ListItem<K>({ title, name, filters, totalPages, query, setQuery, page, setPage, rowsPerPage, setRowsPerPage, updateParams, getParam, rowsPerPageOptions, QueryDebouncedTime, bulkActionFeature, loading, showPaginationRow, showFiltersRow, headerComponent, children, itemName,
|
|
34
|
+
export default function ListItem<K>({ title, name, filters, totalPages, query, setQuery, page, setPage, rowsPerPage, setRowsPerPage, updateParams, getParam, rowsPerPageOptions, QueryDebouncedTime, bulkActionFeature, loading, showPaginationRow, showFiltersRow, headerComponent, children, itemName, localizations, }: Props<K>): import("react/jsx-runtime").JSX.Element;
|
|
32
35
|
export {};
|
|
33
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/list-item/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKjD,OAAO,EACL,iBAAiB,EACjB,MAAM,EAEP,MAAM,mCAAmC,CAAC;AAM3C,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/list-item/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKjD,OAAO,EACL,iBAAiB,EACjB,MAAM,EAEP,MAAM,mCAAmC,CAAC;AAM3C,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AASF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,kBAAkB,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,EAAE,EAClC,KAAK,EACL,IAAI,EACJ,OAAY,EACZ,UAAU,EACV,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,WAAW,EACX,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,kBAAwB,EACxB,iBAA6B,EAC7B,OAAe,EACf,iBAAwB,EACxB,cAAqB,EACrB,eAAe,EACf,QAAQ,EACR,QAAiB,EACjB,aAAoC,GACrC,EAAE,KAAK,CAAC,CAAC,CAAC,2CAuHV"}
|
|
@@ -10,17 +10,23 @@ import { useFilters } from "../..//hooks/list-items-hook/useFilters";
|
|
|
10
10
|
import { usePagination } from "../../hooks/list-items-hook/usePagination";
|
|
11
11
|
import { useBulkActions } from "../../hooks/list-items-hook/useBulkActions";
|
|
12
12
|
import Loader from "../loader";
|
|
13
|
-
const
|
|
14
|
-
|
|
13
|
+
const DEFAULT_LOCALIZATION = {
|
|
14
|
+
searchPlaceholder: (name) => `Search about ${name}`,
|
|
15
|
+
allLabel: "All",
|
|
16
|
+
noItemsFound: (itemName) => `No ${itemName} found!`,
|
|
17
|
+
rowsPerPage: "Rows per page",
|
|
15
18
|
};
|
|
16
|
-
export default function ListItem({ title, name, filters = [], totalPages, query, setQuery, page, setPage, rowsPerPage, setRowsPerPage, updateParams, getParam, rowsPerPageOptions, QueryDebouncedTime = 500, bulkActionFeature = undefined, loading = false, showPaginationRow = true, showFiltersRow = true, headerComponent, children, itemName = "Item",
|
|
19
|
+
export default function ListItem({ title, name, filters = [], totalPages, query, setQuery, page, setPage, rowsPerPage, setRowsPerPage, updateParams, getParam, rowsPerPageOptions, QueryDebouncedTime = 500, bulkActionFeature = undefined, loading = false, showPaginationRow = true, showFiltersRow = true, headerComponent, children, itemName = "Item", localizations = DEFAULT_LOCALIZATION, }) {
|
|
17
20
|
useFilters(name, filters, updateParams, getParam);
|
|
18
21
|
usePagination(name, page, setPage, rowsPerPage, setRowsPerPage, updateParams, getParam);
|
|
19
22
|
useBulkActions(bulkActionFeature, filters, query);
|
|
20
23
|
return (_jsxs("div", { className: "flex flex-col gap-5", children: [title && (_jsx("h3", { className: "text-2xl font-semibold text-primary", children: title })), (showFiltersRow || bulkActionFeature) && (_jsxs("div", { className: clsx("flex items-center flex-wrap", showFiltersRow && bulkActionFeature
|
|
21
24
|
? "justify-between"
|
|
22
|
-
: "justify-end"), children: [showFiltersRow && (_jsxs("div", { className: "flex items-end gap-2 flex-wrap", children: [_jsx(SearchInput, { placeholder:
|
|
23
|
-
{
|
|
25
|
+
: "justify-end"), children: [showFiltersRow && (_jsxs("div", { className: "flex items-end gap-2 flex-wrap", children: [_jsx(SearchInput, { placeholder: localizations.searchPlaceholder(name), value: query, onDebouncedChange: setQuery, QueryDebouncedTime: QueryDebouncedTime }), filters.map((f, i) => (_jsxs("div", { className: "flex flex-col gap-1", children: [f.label && (_jsx("p", { className: "text-text font-semibold", children: f.label })), _jsx(Select, { name: `table-${name}-filter-${f.label}-${i}`, values: [f.value], setValues: (newValues) => f.setValue(newValues[0]), options: [
|
|
26
|
+
{
|
|
27
|
+
label: localizations.allLabel,
|
|
28
|
+
value: DEFAULT_FILTER_VALUE,
|
|
29
|
+
},
|
|
24
30
|
...f.options,
|
|
25
|
-
], placeholder: f.label })] }, `table-${name}-filter-${f.label}-${i}`)))] })), bulkActionFeature && (_jsx("div", { className: "flex items-center gap-2 justify-end w-full md:w-fit", children: bulkActionFeature.bulkActions.map((a, i) => (_jsx(Button, { ...a, disabled: bulkActionFeature.selectedRowIds.length === 0 }, `table-${name}-bulk-action-${i}`))) })), headerComponent] })), _jsx("div", { className: "overflow-x-auto", children: loading ? (_jsx("div", { className: "flex items-center justify-center", children: _jsx(Loader, {}) })) : (_jsx(_Fragment, { children: totalPages > 0 ? (_jsx(_Fragment, { children: children })) : (
|
|
31
|
+
], placeholder: f.label })] }, `table-${name}-filter-${f.label}-${i}`)))] })), bulkActionFeature && (_jsx("div", { className: "flex items-center gap-2 justify-end w-full md:w-fit", children: bulkActionFeature.bulkActions.map((a, i) => (_jsx(Button, { ...a, disabled: bulkActionFeature.selectedRowIds.length === 0 }, `table-${name}-bulk-action-${i}`))) })), headerComponent] })), _jsx("div", { className: "overflow-x-auto", children: loading ? (_jsx("div", { className: "flex items-center justify-center", children: _jsx(Loader, {}) })) : (_jsx(_Fragment, { children: totalPages > 0 ? (_jsx(_Fragment, { children: children })) : (_jsx("p", { className: "text-center text-text", children: localizations.noItemsFound(itemName) })) })) }), showPaginationRow && (_jsxs("div", { className: "flex items-center justify-end gap-2 md:gap-4 mt-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("p", { className: "text-text text-sm", children: localizations.rowsPerPage }), _jsx(Select, { name: `${name}-select`, values: [rowsPerPage], setValues: (newValues) => setRowsPerPage(newValues[0]), options: rowsPerPageOptions })] }), totalPages >= 1 && (_jsx(Pagination, { name: name, page: page, setPage: setPage, totalPages: totalPages }))] }))] }));
|
|
26
32
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { MenuProps } from "@szhsin/react-menu";
|
|
2
|
+
import { MenuProps, MenuInstance } from "@szhsin/react-menu";
|
|
3
3
|
import "@szhsin/react-menu/dist/index.css";
|
|
4
4
|
import "@szhsin/react-menu/dist/transitions/zoom.css";
|
|
5
|
+
export { MenuInstance };
|
|
5
6
|
export type Props = {
|
|
6
7
|
menuButton: React.ReactNode;
|
|
7
8
|
children: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/menu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/menu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAGL,SAAS,EACT,YAAY,EACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,8CAA8C,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,GAAG,SAAS,CAAC;AACd,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,UAAU,EACV,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,2CAUP"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { Menu as SMenu, MenuButton } from "@szhsin/react-menu";
|
|
3
|
+
import { Menu as SMenu, MenuButton, } from "@szhsin/react-menu";
|
|
4
4
|
import clsx from "clsx";
|
|
5
5
|
import "@szhsin/react-menu/dist/index.css";
|
|
6
6
|
import "@szhsin/react-menu/dist/transitions/zoom.css";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/modal/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,KAAK,GACL,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,cAAc,GACd,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAqBlD,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAmB,EACnB,IAAW,EACX,iBAAsB,EACtB,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/modal/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,KAAK,GACL,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,cAAc,GACd,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAqBlD,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAmB,EACnB,IAAW,EACX,iBAAsB,EACtB,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,2CAsGP"}
|
|
@@ -36,6 +36,29 @@ export default function Modal({ isOpen, onClose, children, position = "center",
|
|
|
36
36
|
return () => clearTimeout(timeout);
|
|
37
37
|
}
|
|
38
38
|
}, [isOpen]);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (animate) {
|
|
41
|
+
// or isOpen if you have that prop
|
|
42
|
+
// Store the current scroll position
|
|
43
|
+
const scrollY = window.scrollY;
|
|
44
|
+
// Prevent scrolling on body
|
|
45
|
+
document.body.style.position = "fixed";
|
|
46
|
+
document.body.style.top = `-${scrollY}px`;
|
|
47
|
+
document.body.style.left = "0";
|
|
48
|
+
document.body.style.right = "0";
|
|
49
|
+
document.body.style.overflow = "hidden";
|
|
50
|
+
return () => {
|
|
51
|
+
// Restore scrolling when modal closes
|
|
52
|
+
const scrollY = document.body.style.top;
|
|
53
|
+
document.body.style.position = "";
|
|
54
|
+
document.body.style.top = "";
|
|
55
|
+
document.body.style.left = "";
|
|
56
|
+
document.body.style.right = "";
|
|
57
|
+
document.body.style.overflow = "";
|
|
58
|
+
window.scrollTo(0, parseInt(scrollY || "0") * -1);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}, [animate]);
|
|
39
62
|
if (!show)
|
|
40
63
|
return null;
|
|
41
64
|
return (_jsx("div", { className: clsx(`fixed inset-0 bg-black z-50 overflow-auto`, `transition-opacity duration-300`, animate ? "opacity-100" : "opacity-0 pointer-events-none"), style: {
|
|
@@ -28,6 +28,7 @@ export type SelectViewProps<T> = {
|
|
|
28
28
|
filteredOptions: SelectOption<T>[];
|
|
29
29
|
onOptionClick: (o: SelectOption<T>) => void;
|
|
30
30
|
desiredMax: number;
|
|
31
|
+
className?: string;
|
|
31
32
|
};
|
|
32
|
-
export default function SelectView<T>({ label, required, errorMessage, containerRef, menuRef, disabled, isOpen, buttonClassName, onToggle, multiselect, selectedOptions, placeholder, IconPlaceholderLeft, onClear, name, show, usePortal, dropdownClassName, animate, menuPos, isSearchable, search, onChangeSearchInput, filteredOptions, onOptionClick, desiredMax, }: SelectViewProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export default function SelectView<T>({ label, required, errorMessage, containerRef, menuRef, disabled, isOpen, buttonClassName, onToggle, multiselect, selectedOptions, placeholder, IconPlaceholderLeft, onClear, name, show, usePortal, dropdownClassName, animate, menuPos, isSearchable, search, onChangeSearchInput, filteredOptions, onOptionClick, desiredMax, className, }: SelectViewProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
33
34
|
//# sourceMappingURL=SelectView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectView.d.ts","sourceRoot":"","sources":["../../../src/components/select/SelectView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAO3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAGhC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAGzC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAGvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAChE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,EAAE,EACpC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,MAAM,EACN,eAAe,EACf,QAAQ,EACR,WAAW,EACX,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,YAAY,EACZ,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,UAAU,
|
|
1
|
+
{"version":3,"file":"SelectView.d.ts","sourceRoot":"","sources":["../../../src/components/select/SelectView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAO3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAGhC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAGzC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAGvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAChE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,EAAE,EACpC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,MAAM,EACN,eAAe,EACf,QAAQ,EACR,WAAW,EACX,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,YAAY,EACZ,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,eAAe,CAAC,CAAC,CAAC,2CA2FpB"}
|
|
@@ -6,10 +6,10 @@ import SelectControl from "./SelectControl";
|
|
|
6
6
|
import SelectPlaceHolder from "./SelectPlaceholder";
|
|
7
7
|
import SelectChips from "./SelectChips";
|
|
8
8
|
import SelectDropdownContent from "./SelectDropdownContent";
|
|
9
|
-
export default function SelectView({ label, required, errorMessage, containerRef, menuRef, disabled, isOpen, buttonClassName, onToggle, multiselect, selectedOptions, placeholder, IconPlaceholderLeft, onClear, name, show, usePortal, dropdownClassName, animate, menuPos, isSearchable, search, onChangeSearchInput, filteredOptions, onOptionClick, desiredMax, }) {
|
|
9
|
+
export default function SelectView({ label, required, errorMessage, containerRef, menuRef, disabled, isOpen, buttonClassName, onToggle, multiselect, selectedOptions, placeholder, IconPlaceholderLeft, onClear, name, show, usePortal, dropdownClassName, animate, menuPos, isSearchable, search, onChangeSearchInput, filteredOptions, onOptionClick, desiredMax, className, }) {
|
|
10
10
|
const leftContent = multiselect ? (selectedOptions.length ? (_jsx(SelectChips, { name: name, selectedOptions: selectedOptions, disabled: disabled, onRemove: (o) => onOptionClick(o) })) : (_jsx(SelectPlaceHolder, { placeholder: placeholder, IconPlaceholderLeft: IconPlaceholderLeft }))) : selectedOptions[0] ? (_jsx("div", { className: "text-text truncate line-clamp-1", children: selectedOptions[0].label })) : (_jsx(SelectPlaceHolder, { placeholder: placeholder, IconPlaceholderLeft: IconPlaceholderLeft }));
|
|
11
11
|
const dropdownEl = (_jsx(SelectDropdownContent, { ref: menuRef, usePortal: usePortal, dropdownClassName: dropdownClassName, animate: animate, menuPos: menuPos, isSearchable: isSearchable, search: search, onChangeSearchInput: onChangeSearchInput, filteredOptions: filteredOptions, selectedOptions: selectedOptions, name: name, onOptionClick: onOptionClick, onStopClick: (e) => e.stopPropagation() }));
|
|
12
|
-
return (_jsxs("div", { className: "flex flex-col gap-1", children: [label && (_jsxs("label", { htmlFor: name, className: "pl-1 text-sm text-foreground font-medium mb-2", children: [label, " ", required && _jsx("span", { className: "font-bold", children: "*" })] })), _jsxs("div", { ref: containerRef, className: "relative w-full", children: [_jsx(SelectControl, { disabled: disabled, errorMessage: errorMessage, isOpen: isOpen, buttonClassName: buttonClassName, onToggle: onToggle, leftContent: leftContent, showClear: !disabled &&
|
|
12
|
+
return (_jsxs("div", { className: clsx("flex flex-col gap-1", className), children: [label && (_jsxs("label", { htmlFor: name, className: "pl-1 text-sm text-foreground font-medium mb-2", children: [label, " ", required && _jsx("span", { className: "font-bold", children: "*" })] })), _jsxs("div", { ref: containerRef, className: "relative w-full", children: [_jsx(SelectControl, { disabled: disabled, errorMessage: errorMessage, isOpen: isOpen, buttonClassName: buttonClassName, onToggle: onToggle, leftContent: leftContent, showClear: !disabled &&
|
|
13
13
|
(multiselect ? selectedOptions.length > 0 : !!selectedOptions[0]), onClear: onClear }), show &&
|
|
14
14
|
!disabled &&
|
|
15
15
|
(usePortal ? (createPortal(dropdownEl, document.body)) : (_jsx("div", { className: clsx("absolute left-0 mt-1 z-50 max-w-[360px] min-w-[260px] w-full"), style: { maxHeight: desiredMax }, children: dropdownEl })))] }), errorMessage && (_jsx("p", { className: "pl-1 text-sm text-error", children: errorMessage }))] }));
|
|
@@ -8,6 +8,7 @@ export type Props<T> = {
|
|
|
8
8
|
setValues: (newValues: T[]) => void;
|
|
9
9
|
errorMessage?: string | boolean;
|
|
10
10
|
buttonClassName?: string;
|
|
11
|
+
className?: string;
|
|
11
12
|
placeholder?: string;
|
|
12
13
|
IconPlaceholderLeft?: React.ReactNode;
|
|
13
14
|
multiselect?: boolean;
|
|
@@ -23,5 +24,5 @@ export type Props<T> = {
|
|
|
23
24
|
usePortal?: boolean;
|
|
24
25
|
dropdownClassName?: string;
|
|
25
26
|
};
|
|
26
|
-
export default function Select<T>({ name, options, values, setValues, errorMessage, buttonClassName, placeholder, multiselect, disabled, label, isSearchable, required, IconPlaceholderLeft, onChangeSearchInput, onRemove, searchDebounceTimeout, isRemote, usePortal, dropdownClassName, excludeIds, }: Props<T>): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export default function Select<T>({ name, options, values, setValues, errorMessage, buttonClassName, className, placeholder, multiselect, disabled, label, isSearchable, required, IconPlaceholderLeft, onChangeSearchInput, onRemove, searchDebounceTimeout, isRemote, usePortal, dropdownClassName, excludeIds, }: Props<T>): import("react/jsx-runtime").JSX.Element;
|
|
27
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/select/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAON,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3B,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAEpC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,EAAE,EAChC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAyB,EACzB,WAAmB,EACnB,QAAgB,EAChB,KAAK,EACL,YAAoB,EACpB,QAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,qBAA2B,EAC3B,QAAgB,EAChB,SAAgB,EAChB,iBAAiB,EACjB,UAAe,GAChB,EAAE,KAAK,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/select/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAON,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3B,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAEpC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,EAAE,EAChC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,EACT,WAAyB,EACzB,WAAmB,EACnB,QAAgB,EAChB,KAAK,EACL,YAAoB,EACpB,QAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,qBAA2B,EAC3B,QAAgB,EAChB,SAAgB,EAChB,iBAAiB,EACjB,UAAe,GAChB,EAAE,KAAK,CAAC,CAAC,CAAC,2CAuIV"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useState, useRef, useEffect, useMemo, } from "react";
|
|
4
4
|
import { useSelectPortal } from "./useSelectPortal";
|
|
5
5
|
import SelectView from "./SelectView";
|
|
6
|
-
export default function Select({ name, options, values, setValues, errorMessage, buttonClassName, placeholder = "Select...", multiselect = false, disabled = false, label, isSearchable = false, required = false, IconPlaceholderLeft, onChangeSearchInput, onRemove, searchDebounceTimeout = 500, isRemote = false, usePortal = true, dropdownClassName, excludeIds = [], }) {
|
|
6
|
+
export default function Select({ name, options, values, setValues, errorMessage, buttonClassName, className, placeholder = "Select...", multiselect = false, disabled = false, label, isSearchable = false, required = false, IconPlaceholderLeft, onChangeSearchInput, onRemove, searchDebounceTimeout = 500, isRemote = false, usePortal = true, dropdownClassName, excludeIds = [], }) {
|
|
7
7
|
const [isOpen, setIsOpen] = useState(false);
|
|
8
8
|
const [search, setSearch] = useState("");
|
|
9
9
|
const [selectedCache, setSelectedCache] = useState([]);
|
|
@@ -81,7 +81,7 @@ export default function Select({ name, options, values, setValues, errorMessage,
|
|
|
81
81
|
document.addEventListener("mousedown", onDocMouseDown);
|
|
82
82
|
return () => document.removeEventListener("mousedown", onDocMouseDown);
|
|
83
83
|
}, []);
|
|
84
|
-
return (_jsx(SelectView, { label: label, required: required, errorMessage: errorMessage, containerRef: containerRef, menuRef: menuRef, disabled: disabled, isOpen: isOpen, buttonClassName: buttonClassName, onToggle: () => setIsOpen((o) => !o), multiselect: multiselect, selectedOptions: selectedOptions, placeholder: placeholder, IconPlaceholderLeft: IconPlaceholderLeft, onClear: handleClear, name: name, show: show, usePortal: usePortal, dropdownClassName: dropdownClassName, animate: animate, menuPos: menuPos, isSearchable: isSearchable, search: search, onChangeSearchInput: handleSearchInputChange, filteredOptions: filteredOptions, onOptionClick: (o) => {
|
|
84
|
+
return (_jsx(SelectView, { className: className, label: label, required: required, errorMessage: errorMessage, containerRef: containerRef, menuRef: menuRef, disabled: disabled, isOpen: isOpen, buttonClassName: buttonClassName, onToggle: () => setIsOpen((o) => !o), multiselect: multiselect, selectedOptions: selectedOptions, placeholder: placeholder, IconPlaceholderLeft: IconPlaceholderLeft, onClear: handleClear, name: name, show: show, usePortal: usePortal, dropdownClassName: dropdownClassName, animate: animate, menuPos: menuPos, isSearchable: isSearchable, search: search, onChangeSearchInput: handleSearchInputChange, filteredOptions: filteredOptions, onOptionClick: (o) => {
|
|
85
85
|
setSearch("");
|
|
86
86
|
toggleOption(o);
|
|
87
87
|
}, desiredMax: desiredMax }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tab/index.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3E,GAAG,EAAE,CAAC,CAAC;IACP,UAAU,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tab/index.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3E,GAAG,EAAE,CAAC,CAAC;IACP,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnB,sBAAsB;IACtB,MAAM,EAAE,CAAC,CAAC;IAEV,+BAA+B;IAC/B,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;IAElC,sCAAsC;IACtC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEvD,sCAAsC;IACtC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC;QACV,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;KACvE,KAAK,KAAK,CAAC,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,EAC5C,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,GACX,EAAE,KAAK,CAAC,CAAC,CAAC,2CAmDV"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ToastPosition, ToastSize } from "./toaster-store";
|
|
2
|
+
type ToasterProps = {
|
|
3
|
+
timeout?: number;
|
|
4
|
+
position?: ToastPosition;
|
|
5
|
+
size?: ToastSize;
|
|
6
|
+
className?: string;
|
|
7
|
+
showIcon?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export default function Toaster({ timeout, position, size, className, showIcon, }: ToasterProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toaster/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAGV,aAAa,EACb,SAAS,EAEV,MAAM,iBAAiB,CAAC;AAGzB,KAAK,YAAY,GAAG;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAeF,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,OAAc,EACd,QAAsB,EACtB,IAAW,EACX,SAAS,EACT,QAAe,GAChB,EAAE,YAAY,2CA6Ld"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, } from "react";
|
|
3
|
+
import { removeToast } from "./toaster-actions";
|
|
4
|
+
import ToastCard from "./toaster-card";
|
|
5
|
+
import { useStore } from "./toaster-hook";
|
|
6
|
+
import { colors as toastColors, icons as toastIcons } from "./toaster-card";
|
|
7
|
+
const POSITION_CLASSES = {
|
|
8
|
+
"top-left": "top-4 left-4 items-start",
|
|
9
|
+
"top-right": "top-4 right-4 items-end",
|
|
10
|
+
"bottom-left": "bottom-4 left-4 items-start",
|
|
11
|
+
"bottom-right": "bottom-4 right-4 items-end",
|
|
12
|
+
};
|
|
13
|
+
const SIZE_CLASSES = {
|
|
14
|
+
sm: "text-sm",
|
|
15
|
+
md: "text-base",
|
|
16
|
+
lg: "text-lg",
|
|
17
|
+
};
|
|
18
|
+
export default function Toaster({ timeout = 5000, position = "top-right", size = "sm", className, showIcon = true, }) {
|
|
19
|
+
const toasts = useStore((state) => state.toasts);
|
|
20
|
+
const timersRef = useRef(new Map());
|
|
21
|
+
const closeTimersRef = useRef(new Map());
|
|
22
|
+
const nodesRef = useRef(new Map());
|
|
23
|
+
const positionsRef = useRef(new Map());
|
|
24
|
+
const [closingIds, setClosingIds] = useState(new Set());
|
|
25
|
+
const exitDuration = 200;
|
|
26
|
+
const layoutDuration = 200;
|
|
27
|
+
const requestClose = useCallback((id) => {
|
|
28
|
+
setClosingIds((prev) => {
|
|
29
|
+
if (prev.has(id)) {
|
|
30
|
+
return prev;
|
|
31
|
+
}
|
|
32
|
+
const next = new Set(prev);
|
|
33
|
+
next.add(id);
|
|
34
|
+
return next;
|
|
35
|
+
});
|
|
36
|
+
if (closeTimersRef.current.has(id)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const timer = setTimeout(() => {
|
|
40
|
+
removeToast(id);
|
|
41
|
+
setClosingIds((prev) => {
|
|
42
|
+
const next = new Set(prev);
|
|
43
|
+
next.delete(id);
|
|
44
|
+
return next;
|
|
45
|
+
});
|
|
46
|
+
closeTimersRef.current.delete(id);
|
|
47
|
+
}, exitDuration);
|
|
48
|
+
closeTimersRef.current.set(id, timer);
|
|
49
|
+
}, [exitDuration]);
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
const timers = timersRef.current;
|
|
52
|
+
toasts.forEach((toast) => {
|
|
53
|
+
var _a;
|
|
54
|
+
const toastTimeout = (_a = toast.timeout) !== null && _a !== void 0 ? _a : timeout;
|
|
55
|
+
if (toastTimeout <= 0) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (!timers.has(toast.id)) {
|
|
59
|
+
const timer = setTimeout(() => requestClose(toast.id), toastTimeout);
|
|
60
|
+
timers.set(toast.id, timer);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
for (const [id, timer] of timers.entries()) {
|
|
64
|
+
if (!toasts.some((toast) => toast.id === id)) {
|
|
65
|
+
clearTimeout(timer);
|
|
66
|
+
timers.delete(id);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (closingIds.size > 0) {
|
|
70
|
+
const toastIds = new Set(toasts.map((toast) => toast.id));
|
|
71
|
+
setClosingIds((prev) => {
|
|
72
|
+
if ([...prev].every((id) => toastIds.has(id))) {
|
|
73
|
+
return prev;
|
|
74
|
+
}
|
|
75
|
+
return new Set([...prev].filter((id) => toastIds.has(id)));
|
|
76
|
+
});
|
|
77
|
+
for (const [id, timer] of closeTimersRef.current.entries()) {
|
|
78
|
+
if (!toastIds.has(id)) {
|
|
79
|
+
clearTimeout(timer);
|
|
80
|
+
closeTimersRef.current.delete(id);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}, [toasts, timeout, requestClose, closingIds.size]);
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
const timers = timersRef.current;
|
|
87
|
+
return () => {
|
|
88
|
+
for (const timer of timers.values()) {
|
|
89
|
+
clearTimeout(timer);
|
|
90
|
+
}
|
|
91
|
+
timers.clear();
|
|
92
|
+
for (const timer of closeTimersRef.current.values()) {
|
|
93
|
+
clearTimeout(timer);
|
|
94
|
+
}
|
|
95
|
+
closeTimersRef.current.clear();
|
|
96
|
+
};
|
|
97
|
+
}, []);
|
|
98
|
+
useLayoutEffect(() => {
|
|
99
|
+
const nextPositions = new Map();
|
|
100
|
+
toasts.forEach((toast) => {
|
|
101
|
+
const node = nodesRef.current.get(toast.id);
|
|
102
|
+
if (node) {
|
|
103
|
+
nextPositions.set(toast.id, node.getBoundingClientRect());
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
nextPositions.forEach((nextRect, id) => {
|
|
107
|
+
const prevRect = positionsRef.current.get(id);
|
|
108
|
+
if (!prevRect) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const deltaX = prevRect.left - nextRect.left;
|
|
112
|
+
const deltaY = prevRect.top - nextRect.top;
|
|
113
|
+
if (deltaX === 0 && deltaY === 0) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const node = nodesRef.current.get(id);
|
|
117
|
+
if (!node) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
node.style.transition = "transform 0ms";
|
|
121
|
+
node.style.transform = `translate(${deltaX}px, ${deltaY}px)`;
|
|
122
|
+
node.getBoundingClientRect();
|
|
123
|
+
node.style.transition = `transform ${layoutDuration}ms ease`;
|
|
124
|
+
node.style.transform = "translate(0px, 0px)";
|
|
125
|
+
const handleTransitionEnd = (event) => {
|
|
126
|
+
if (event.propertyName !== "transform") {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
node.style.transition = "";
|
|
130
|
+
node.removeEventListener("transitionend", handleTransitionEnd);
|
|
131
|
+
};
|
|
132
|
+
node.addEventListener("transitionend", handleTransitionEnd);
|
|
133
|
+
});
|
|
134
|
+
positionsRef.current = nextPositions;
|
|
135
|
+
}, [toasts, layoutDuration]);
|
|
136
|
+
const positionClasses = POSITION_CLASSES[position];
|
|
137
|
+
const containerClassName = useMemo(() => {
|
|
138
|
+
const base = "fixed z-50 flex w-full max-w-sm flex-col gap-3 pointer-events-none";
|
|
139
|
+
return className
|
|
140
|
+
? `${base} ${positionClasses} ${className}`
|
|
141
|
+
: `${base} ${positionClasses}`;
|
|
142
|
+
}, [className, positionClasses]);
|
|
143
|
+
const enterOffset = position.startsWith("bottom") ? 12 : -12;
|
|
144
|
+
return (_jsx("div", { className: containerClassName, children: toasts.map((toast) => {
|
|
145
|
+
var _a, _b;
|
|
146
|
+
const toastSize = (_a = toast.size) !== null && _a !== void 0 ? _a : size;
|
|
147
|
+
const toastType = (_b = toast.type) !== null && _b !== void 0 ? _b : "primary";
|
|
148
|
+
const color = toastColors[toastType];
|
|
149
|
+
const icon = toastIcons[toastType];
|
|
150
|
+
return (_jsx("div", { ref: (node) => {
|
|
151
|
+
if (node) {
|
|
152
|
+
nodesRef.current.set(toast.id, node);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
nodesRef.current.delete(toast.id);
|
|
156
|
+
}
|
|
157
|
+
}, children: _jsx(ToastCard, { toast: toast, sizeClass: SIZE_CLASSES[toastSize], type: toastType, color: color, icon: icon, enterOffset: enterOffset, onClose: requestClose, showIcon: showIcon, isClosing: closingIds.has(toast.id) }) }, toast.id));
|
|
158
|
+
}) }));
|
|
159
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/toaster/toaster-actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAEhB,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,SAAS,GAAI,OAAO,UAAU,KAAG,MAiB7C,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,IAKxC,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,IAE9B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { toasterStore, } from "../toaster-store";
|
|
2
|
+
const createToastId = () => `toast_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
|
|
3
|
+
export const pushToast = (input) => {
|
|
4
|
+
const { toasts } = toasterStore.getState();
|
|
5
|
+
if (toasts.some((toast) => toast.message === input.message)) {
|
|
6
|
+
return "";
|
|
7
|
+
}
|
|
8
|
+
const toast = {
|
|
9
|
+
id: createToastId(),
|
|
10
|
+
createdAt: Date.now(),
|
|
11
|
+
...input,
|
|
12
|
+
};
|
|
13
|
+
toasterStore.setState({
|
|
14
|
+
toasts: [...toasts, toast],
|
|
15
|
+
});
|
|
16
|
+
return toast.id;
|
|
17
|
+
};
|
|
18
|
+
export const removeToast = (id) => {
|
|
19
|
+
const { toasts } = toasterStore.getState();
|
|
20
|
+
toasterStore.setState({
|
|
21
|
+
toasts: toasts.filter((toast) => toast.id !== id),
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
export const clearToasts = () => {
|
|
25
|
+
toasterStore.setState({ toasts: [] });
|
|
26
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToastItem, Types } from "../toaster-store";
|
|
2
|
+
type ToastCardProps = {
|
|
3
|
+
toast: ToastItem;
|
|
4
|
+
sizeClass: string;
|
|
5
|
+
type: Types;
|
|
6
|
+
color: {
|
|
7
|
+
bg: string;
|
|
8
|
+
text: string;
|
|
9
|
+
};
|
|
10
|
+
icon: string;
|
|
11
|
+
enterOffset: number;
|
|
12
|
+
onClose: (id: string) => void;
|
|
13
|
+
showIcon: boolean;
|
|
14
|
+
theme?: "default";
|
|
15
|
+
isClosing: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare const colors: Record<Types, {
|
|
18
|
+
bg: string;
|
|
19
|
+
text: string;
|
|
20
|
+
}>;
|
|
21
|
+
export declare const icons: Record<Types, string>;
|
|
22
|
+
export default function ToastCard({ toast, sizeClass, type, icon, enterOffset, onClose, showIcon, theme, isClosing, }: ToastCardProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/toaster/toaster-card/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzD,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAM,CACzB,KAAK,EACL;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CA0BF,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAOvC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,KAAK,EACL,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,OAAO,EACP,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE,cAAc,2CAmDhB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import Icon from "../../icon";
|
|
3
|
+
import clsx from "clsx";
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
5
|
+
export const colors = {
|
|
6
|
+
primary: {
|
|
7
|
+
bg: "bg-primary",
|
|
8
|
+
text: "text-white",
|
|
9
|
+
},
|
|
10
|
+
secondary: {
|
|
11
|
+
bg: "bg-secondary",
|
|
12
|
+
text: "text-secondary",
|
|
13
|
+
},
|
|
14
|
+
success: {
|
|
15
|
+
bg: "bg-success",
|
|
16
|
+
text: "text-success",
|
|
17
|
+
},
|
|
18
|
+
info: {
|
|
19
|
+
bg: "bg-info",
|
|
20
|
+
text: "text-info",
|
|
21
|
+
},
|
|
22
|
+
warning: {
|
|
23
|
+
bg: "bg-warning",
|
|
24
|
+
text: "text-warning",
|
|
25
|
+
},
|
|
26
|
+
error: {
|
|
27
|
+
bg: "bg-error",
|
|
28
|
+
text: "text-error",
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
export const icons = {
|
|
32
|
+
primary: "gg:info",
|
|
33
|
+
secondary: "gg:info",
|
|
34
|
+
success: "qlementine-icons:success-16",
|
|
35
|
+
info: "gg:info",
|
|
36
|
+
warning: "mi:warning",
|
|
37
|
+
error: "material-symbols:error-outline",
|
|
38
|
+
};
|
|
39
|
+
export default function ToastCard({ toast, sizeClass, type, icon, enterOffset, onClose, showIcon, theme, isClosing, }) {
|
|
40
|
+
const [mounted, setMounted] = useState(false);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
const id = requestAnimationFrame(() => setMounted(true));
|
|
43
|
+
return () => cancelAnimationFrame(id);
|
|
44
|
+
}, []);
|
|
45
|
+
let className = clsx(theme === "default"
|
|
46
|
+
? "text-white"
|
|
47
|
+
: `${colors[type].text} ${colors[type].bg} bg-opacity-20`);
|
|
48
|
+
const isVisible = mounted && !isClosing;
|
|
49
|
+
const translateY = isVisible ? 0 : enterOffset;
|
|
50
|
+
const scale = isVisible ? 1 : 0.98;
|
|
51
|
+
const opacity = isVisible ? 1 : 0;
|
|
52
|
+
return (_jsx("div", { className: clsx("pointer-events-auto w-full rounded-lg transition-all duration-200 ease-out", className), style: {
|
|
53
|
+
opacity,
|
|
54
|
+
transform: `translateY(${translateY}px) scale(${scale})`,
|
|
55
|
+
}, "data-toast-type": type, children: _jsxs("div", { className: clsx("flex items-center gap-3 rounded-lg p-2", sizeClass), children: [showIcon ? _jsx(Icon, { icon: icon, className: "h-5 w-5" }) : null, _jsx("div", { className: "flex-1", children: _jsx("p", { className: "text-sm md:text-base ", children: toast.message }) }), _jsx("button", { type: "button", onClick: () => onClose(toast.id), "aria-label": "Close notification", children: _jsx(Icon, { icon: "line-md:close-small", className: "h-5 w-5 transition-all duration-300 ease-in-out hover:scale-110" }) })] }) }));
|
|
56
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/toaster/toaster-hook/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EACjD,QAAQ,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAA4C,GACxE,SAAS,CAIX"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type ToastSize = "sm" | "md" | "lg";
|
|
2
|
+
export type Types = "primary" | "secondary" | "success" | "info" | "warning" | "error";
|
|
3
|
+
export type ToastPosition = "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
4
|
+
export type ToastItem = {
|
|
5
|
+
id: string;
|
|
6
|
+
message: string;
|
|
7
|
+
type?: Types;
|
|
8
|
+
size?: ToastSize;
|
|
9
|
+
timeout?: number;
|
|
10
|
+
createdAt: number;
|
|
11
|
+
};
|
|
12
|
+
export type ToastInput = Omit<ToastItem, "id" | "createdAt">;
|
|
13
|
+
export type ToasterState = {
|
|
14
|
+
toasts: ToastItem[];
|
|
15
|
+
};
|
|
16
|
+
type Listener = (state: ToasterState) => void;
|
|
17
|
+
export declare const toasterStore: {
|
|
18
|
+
getState: () => ToasterState;
|
|
19
|
+
setState: (partial: Partial<ToasterState>) => void;
|
|
20
|
+
subscribe: (listener: Listener) => (() => void);
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/toaster/toaster-store/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,MAAM,KAAK,GACb,SAAS,GACT,WAAW,GACX,SAAS,GACT,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,CAAC;AAEF,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAQ9C,eAAO,MAAM,YAAY;oBACT,YAAY;wBAEN,OAAO,CAAC,YAAY,CAAC,KAAG,IAAI;0BAK1B,QAAQ,KAAG,CAAC,MAAM,IAAI,CAAC;CAI9C,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
let state = {
|
|
2
|
+
toasts: [],
|
|
3
|
+
};
|
|
4
|
+
const listeners = new Set();
|
|
5
|
+
export const toasterStore = {
|
|
6
|
+
getState: () => state,
|
|
7
|
+
setState: (partial) => {
|
|
8
|
+
state = { ...state, ...partial };
|
|
9
|
+
listeners.forEach((l) => l(state));
|
|
10
|
+
},
|
|
11
|
+
subscribe: (listener) => {
|
|
12
|
+
listeners.add(listener);
|
|
13
|
+
return () => listeners.delete(listener);
|
|
14
|
+
},
|
|
15
|
+
};
|
|
@@ -7,6 +7,7 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
|
|
|
7
7
|
roles: string;
|
|
8
8
|
accounts: string;
|
|
9
9
|
emailTemplates: string;
|
|
10
|
+
developerCenter: string;
|
|
10
11
|
"dashboard.welcome": string;
|
|
11
12
|
"header.profile": string;
|
|
12
13
|
"header.settings": string;
|
|
@@ -187,6 +188,12 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
|
|
|
187
188
|
"localization.delete": string;
|
|
188
189
|
"localization.updateLanguage": string;
|
|
189
190
|
"localization.createLanguage": string;
|
|
191
|
+
"developmentCenter.title": string;
|
|
192
|
+
"developmentCenter.syncCenter": string;
|
|
193
|
+
"developmentCenter.systemManagementCenter": string;
|
|
194
|
+
"developmentCenter.freeCache": string;
|
|
195
|
+
"developmentCenter.logoutAllAccounts": string;
|
|
196
|
+
"developmentCenter.systemStatus": string;
|
|
190
197
|
};
|
|
191
198
|
"Strategy-Application": {
|
|
192
199
|
goal: string;
|
|
@@ -350,6 +357,7 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
|
|
|
350
357
|
"button.confirm": string;
|
|
351
358
|
"button.create": string;
|
|
352
359
|
"button.add": string;
|
|
360
|
+
"button.saveConfiguration": string;
|
|
353
361
|
"button.update": string;
|
|
354
362
|
"button.newProgram": string;
|
|
355
363
|
"button.newActivity": string;
|
|
@@ -390,6 +398,34 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
|
|
|
390
398
|
"progress.card.weight": string;
|
|
391
399
|
"progress.overAllProgress": string;
|
|
392
400
|
"progress.progressDetails": string;
|
|
401
|
+
"progress.form.title": string;
|
|
402
|
+
"progress.form.subtitle": string;
|
|
403
|
+
"kpi.new": string;
|
|
404
|
+
"kpi.title": string;
|
|
405
|
+
"kpi.subtitle.initiative": string;
|
|
406
|
+
"kpi.progressToTarget": string;
|
|
407
|
+
"kpi.message.delete.confirm": string;
|
|
408
|
+
"kpi.form.title.edit": string;
|
|
409
|
+
"kpi.form.title.add": string;
|
|
410
|
+
"kpi.form.subtitle.edit": string;
|
|
411
|
+
"kpi.form.subtitle.add": string;
|
|
412
|
+
"kpi.form.kpiTitle": string;
|
|
413
|
+
"kpi.form.kpiTitle.placeholder": string;
|
|
414
|
+
"kpi.form.description.placeholder": string;
|
|
415
|
+
"kpi.form.targetValue.placeholder": string;
|
|
416
|
+
"kpi.form.unit": string;
|
|
417
|
+
"kpi.form.unit.placeholder": string;
|
|
418
|
+
"kpi.form.updateFrequency": string;
|
|
419
|
+
"kpi.form.updateFrequency.placeholder": string;
|
|
420
|
+
"kpi.form.currentValue.placeholder": string;
|
|
421
|
+
"kpi.form.button.update": string;
|
|
422
|
+
"kpi.form.button.create": string;
|
|
423
|
+
"kpi.updateProgress.title": string;
|
|
424
|
+
"kpi.updateProgress.subtitle": string;
|
|
425
|
+
"kpi.updateProgress.newCurrentValue": string;
|
|
426
|
+
"kpi.updateProgress.frequencyNote": string;
|
|
427
|
+
"kpi.updateProgress.updateBasis": string;
|
|
428
|
+
"kpi.updateProgress.button": string;
|
|
393
429
|
"strategy.visionAndMission": string;
|
|
394
430
|
"strategy.vision": string;
|
|
395
431
|
"strategy.Vision": string;
|
|
@@ -405,6 +441,8 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
|
|
|
405
441
|
"goal.modal.edit.description": string;
|
|
406
442
|
"goal.message.delete.confirm": string;
|
|
407
443
|
"goal.message.delete.warning": string;
|
|
444
|
+
"goal.notFound.title": string;
|
|
445
|
+
"goal.notFound.description": string;
|
|
408
446
|
"objective.new": string;
|
|
409
447
|
"objective.list.empty.title": string;
|
|
410
448
|
"objective.details.initiatives.subtitle": string;
|
|
@@ -413,6 +451,35 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
|
|
|
413
451
|
"objective.message.delete.warning": string;
|
|
414
452
|
"objective.modal.add.description": string;
|
|
415
453
|
"objective.modal.edit.description": string;
|
|
454
|
+
"objectives.empty": string;
|
|
455
|
+
"okr.objective.list.noObjectivesDescription": string;
|
|
456
|
+
"okr.objective.form.title.edit": string;
|
|
457
|
+
"okr.objective.form.title.add": string;
|
|
458
|
+
"okr.objective.form.subtitle.ofThe": string;
|
|
459
|
+
"okr.objective.form.subtitle.edit": string;
|
|
460
|
+
"okr.objective.form.subtitle.add": string;
|
|
461
|
+
"okr.objective.form.initiative.placeholder": string;
|
|
462
|
+
"okr.objective.form.objectiveTitle": string;
|
|
463
|
+
"okr.objective.form.objectiveTitle.placeholder": string;
|
|
464
|
+
"okr.objective.form.description.placeholder": string;
|
|
465
|
+
"okr.objective.form.targetYear": string;
|
|
466
|
+
"okr.objective.form.button.update": string;
|
|
467
|
+
"okr.objective.form.button.add": string;
|
|
468
|
+
"okr.keyResult.form.title.edit": string;
|
|
469
|
+
"okr.keyResult.form.title.add": string;
|
|
470
|
+
"okr.keyResult.form.subtitle.edit": string;
|
|
471
|
+
"okr.keyResult.form.subtitle.add": string;
|
|
472
|
+
"okr.keyResult.form.keyResultTitle": string;
|
|
473
|
+
"okr.keyResult.form.keyResultTitle.placeholder": string;
|
|
474
|
+
"okr.keyResult.form.targetValue": string;
|
|
475
|
+
"okr.keyResult.form.targetValue.placeholder": string;
|
|
476
|
+
"okr.keyResult.form.unitOfMeasurement": string;
|
|
477
|
+
"okr.keyResult.form.unitOfMeasurement.placeholder": string;
|
|
478
|
+
"okr.keyResult.form.progressCalculation": string;
|
|
479
|
+
"okr.keyResult.form.currentValue": string;
|
|
480
|
+
"okr.keyResult.form.currentValue.placeholder": string;
|
|
481
|
+
"okr.keyResult.form.button.update": string;
|
|
482
|
+
"okr.keyResult.form.button.add": string;
|
|
416
483
|
"initiative.list.empty.title": string;
|
|
417
484
|
"initiative.details.programs.title": string;
|
|
418
485
|
"initiative.details.programs.subtitle": string;
|
|
@@ -422,6 +489,8 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
|
|
|
422
489
|
"initiative.details.projects.empty.description": string;
|
|
423
490
|
"initiative.details.activities.title": string;
|
|
424
491
|
"initiative.details.activities.subtitle": string;
|
|
492
|
+
"initiative.details.okrs.title": string;
|
|
493
|
+
"initiative.details.okrs.subtitle": string;
|
|
425
494
|
"initiative.modal.edit.description": string;
|
|
426
495
|
"initiative.modal.title": string;
|
|
427
496
|
"initiative.activity.description": string;
|
|
@@ -437,7 +506,6 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
|
|
|
437
506
|
"program.details.objectives.modal.description": string;
|
|
438
507
|
"program.details.objectives.modal.message.empty": string;
|
|
439
508
|
"program.details.objectives.modal.placeholder": string;
|
|
440
|
-
"program.details.objectives.empty": string;
|
|
441
509
|
"program.details.projects.subtitle": string;
|
|
442
510
|
"program.details.projects.empty": string;
|
|
443
511
|
"program.detials.projects.empty": string;
|
|
@@ -461,6 +529,7 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
|
|
|
461
529
|
links: string;
|
|
462
530
|
"project.list.empty.title": string;
|
|
463
531
|
"project.list.empty.description": string;
|
|
532
|
+
"project.title.kpi": string;
|
|
464
533
|
"documents.list.empty.title": string;
|
|
465
534
|
"documents.list.empty": string;
|
|
466
535
|
"documents.card.delete.confirm": string;
|
|
@@ -596,6 +665,113 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
|
|
|
596
665
|
"frequency.monthly": string;
|
|
597
666
|
"frequency.quarterly": string;
|
|
598
667
|
"frequency.oneTime": string;
|
|
668
|
+
"program.details.objectives.empty": string;
|
|
669
|
+
"empty.no__items__Found": string;
|
|
670
|
+
"empty.noDescription__name__found": string;
|
|
671
|
+
searchAbout__name__: string;
|
|
672
|
+
};
|
|
673
|
+
"Student-Attendance-Application": {
|
|
674
|
+
studentPortal: string;
|
|
675
|
+
sharjahEducationAcademy: string;
|
|
676
|
+
attendanceHistory: string;
|
|
677
|
+
overallAttendance: string;
|
|
678
|
+
present: string;
|
|
679
|
+
absent: string;
|
|
680
|
+
excused: string;
|
|
681
|
+
totalClasses: string;
|
|
682
|
+
tip: string;
|
|
683
|
+
delete: string;
|
|
684
|
+
scanTipMessage: string;
|
|
685
|
+
markYourAttendance: string;
|
|
686
|
+
scanQRCodeDescription: string;
|
|
687
|
+
scanQRCode: string;
|
|
688
|
+
cameraAccessHelper: string;
|
|
689
|
+
attendance: string;
|
|
690
|
+
todaysSessions: string;
|
|
691
|
+
sessionHistory: string;
|
|
692
|
+
completedSessions: string;
|
|
693
|
+
inProgress: string;
|
|
694
|
+
upcoming: string;
|
|
695
|
+
students: string;
|
|
696
|
+
notStarted: string;
|
|
697
|
+
start: string;
|
|
698
|
+
previousSessions: string;
|
|
699
|
+
filterBy: string;
|
|
700
|
+
allCourses: string;
|
|
701
|
+
allSections: string;
|
|
702
|
+
fromDate: string;
|
|
703
|
+
toDate: string;
|
|
704
|
+
late: string;
|
|
705
|
+
close: string;
|
|
706
|
+
markAsExcused: string;
|
|
707
|
+
enterReasonForExcusing: string;
|
|
708
|
+
reason: string;
|
|
709
|
+
reasonPlaceholder: string;
|
|
710
|
+
medical: string;
|
|
711
|
+
familyEmergency: string;
|
|
712
|
+
officialEvent: string;
|
|
713
|
+
cancel: string;
|
|
714
|
+
confirmExcuse: string;
|
|
715
|
+
timeRemaining: string;
|
|
716
|
+
scanQRCodeMessage: string;
|
|
717
|
+
endSession: string;
|
|
718
|
+
markPresent: string;
|
|
719
|
+
markExcused: string;
|
|
720
|
+
markAbsent: string;
|
|
721
|
+
total: string;
|
|
722
|
+
searchByNameOrSSN: string;
|
|
723
|
+
exportToCSV: string;
|
|
724
|
+
attended: string;
|
|
725
|
+
rate: string;
|
|
726
|
+
courseBreakdown: string;
|
|
727
|
+
exportReport: string;
|
|
728
|
+
admin: string;
|
|
729
|
+
faculty: string;
|
|
730
|
+
changed: string;
|
|
731
|
+
in: string;
|
|
732
|
+
session: string;
|
|
733
|
+
avgAttendance: string;
|
|
734
|
+
sessions: string;
|
|
735
|
+
low: string;
|
|
736
|
+
classes: string;
|
|
737
|
+
attendanceRate: string;
|
|
738
|
+
from: string;
|
|
739
|
+
to: string;
|
|
740
|
+
recentOverrideActivity: string;
|
|
741
|
+
viewAll: string;
|
|
742
|
+
allStudents: string;
|
|
743
|
+
searchByNameIDEmail: string;
|
|
744
|
+
attendanceOverrideAuditLog: string;
|
|
745
|
+
export: string;
|
|
746
|
+
adminDashboard: string;
|
|
747
|
+
overview: string;
|
|
748
|
+
courses: string;
|
|
749
|
+
auditLog: string;
|
|
750
|
+
reports: string;
|
|
751
|
+
totalStudents: string;
|
|
752
|
+
activeCourses: string;
|
|
753
|
+
lowAttendanceAlerts: string;
|
|
754
|
+
below75: string;
|
|
755
|
+
weeklyAttendanceSummary: string;
|
|
756
|
+
weeklyAttendanceSummaryDescription: string;
|
|
757
|
+
lowAttendanceReport: string;
|
|
758
|
+
lowAttendanceReportDescription: string;
|
|
759
|
+
courseComparisonReport: string;
|
|
760
|
+
courseComparisonReportDescription: string;
|
|
761
|
+
overrideActivityReport: string;
|
|
762
|
+
overrideActivityReportDescription: string;
|
|
763
|
+
online: string;
|
|
764
|
+
sessionActive: string;
|
|
765
|
+
pending: string;
|
|
766
|
+
waiting: string;
|
|
767
|
+
studentsCount: string;
|
|
768
|
+
attendancePercentage: string;
|
|
769
|
+
studentServicesDepartment: string;
|
|
770
|
+
details: string;
|
|
771
|
+
academicYear: string;
|
|
772
|
+
select: string;
|
|
773
|
+
noItemsFound: string;
|
|
774
|
+
noItemsFoundMessage: string;
|
|
599
775
|
};
|
|
600
776
|
};
|
|
601
777
|
type TranslationKeysMap = {
|
|
@@ -603,6 +779,8 @@ type TranslationKeysMap = {
|
|
|
603
779
|
.PlatformAdministrationApplication]: (typeof DEFAULT_TRANSLATIONS_MAP)[CONSTANTS.Application.ApplicationKeys.PlatformAdministrationApplication];
|
|
604
780
|
[CONSTANTS.Application.ApplicationKeys
|
|
605
781
|
.StrategyApplication]: (typeof DEFAULT_TRANSLATIONS_MAP)[CONSTANTS.Application.ApplicationKeys.StrategyApplication];
|
|
782
|
+
[CONSTANTS.Application.ApplicationKeys
|
|
783
|
+
.StudentAttendanceApplication]: (typeof DEFAULT_TRANSLATIONS_MAP)[CONSTANTS.Application.ApplicationKeys.StudentAttendanceApplication];
|
|
606
784
|
};
|
|
607
785
|
export declare function useSeaTranslation<K extends keyof TranslationKeysMap>(applicationKey: K, fetchTranslation: () => Promise<Record<keyof TranslationKeysMap[K], string>>, selectedLanguageCode?: string): {
|
|
608
786
|
t: (key: keyof TranslationKeysMap[K], params?: Record<string, string | number>) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-translation/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-translation/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOpC,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe;SACnC,iCAAiC,CAAC,EAAE,CAAC,OAAO,wBAAwB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,iCAAiC,CAAC,CAAC;IAClJ,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe;SACnC,mBAAmB,CAAC,EAAE,CAAC,OAAO,wBAAwB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;IACtH,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe;SACnC,4BAA4B,CAAC,EAAE,CAAC,OAAO,wBAAwB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;CACzI,CAAC;AAUF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAClE,cAAc,EAAE,CAAC,EACjB,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAC5E,oBAAoB,CAAC,EAAE,MAAM;aA+CtB,MAAM,kBAAkB,CAAC,CAAC,CAAC,WACvB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KACvC,MAAM;EAsBV"}
|
|
@@ -4,6 +4,7 @@ import { useState, useEffect } from "react";
|
|
|
4
4
|
export const DEFAULT_TRANSLATIONS_MAP = {
|
|
5
5
|
[CONSTANTS.Application.ApplicationKeys.PlatformAdministrationApplication]: CONSTANTS.Localization.platformAdministrationApplication,
|
|
6
6
|
[CONSTANTS.Application.ApplicationKeys.StrategyApplication]: CONSTANTS.Localization.strategyApplication,
|
|
7
|
+
[CONSTANTS.Application.ApplicationKeys.StudentAttendanceApplication]: CONSTANTS.Localization.studentAttendanceApplication,
|
|
7
8
|
};
|
|
8
9
|
let json = {};
|
|
9
10
|
let isFetching = false;
|
|
@@ -14,7 +15,10 @@ export function useSeaTranslation(applicationKey, fetchTranslation, selectedLang
|
|
|
14
15
|
const [, setRenderTrigger] = useState(false);
|
|
15
16
|
useEffect(() => {
|
|
16
17
|
const fetchDefaultTranslation = async () => {
|
|
17
|
-
if (!json[selectedLanguageCode] &&
|
|
18
|
+
if (!json[selectedLanguageCode] &&
|
|
19
|
+
isFetching == false &&
|
|
20
|
+
!!selectedLanguageCode) {
|
|
21
|
+
console.log({ selectedLanguageCode });
|
|
18
22
|
try {
|
|
19
23
|
isFetching = true;
|
|
20
24
|
const languageResponse = await fetchTranslation();
|
package/dist/index.d.ts
CHANGED
|
@@ -9,16 +9,20 @@ export * as FirebaseUtils from "./utils/firebase-client";
|
|
|
9
9
|
export * as DeviceUtils from "./utils/device";
|
|
10
10
|
export * as Services from "./services";
|
|
11
11
|
export { default as MustAuth } from "./middleware/must-auth";
|
|
12
|
+
export { default as SocketProvider, useSocket, SocketProviderProps, } from "./providers/socket-provider";
|
|
12
13
|
export { useHasApplicationAccess } from "./hooks/user-has-application-access";
|
|
13
14
|
export { useHasOneOfPermissions, useHasPermission, } from "./hooks/use-has-permission-access";
|
|
14
15
|
export { useSeaTranslation, DEFAULT_TRANSLATIONS_MAP, } from "./hooks/use-translation";
|
|
15
16
|
export { default as Icon, Props as IconProps } from "./components/icon";
|
|
16
17
|
export { default as Button, Props as ButtonProps } from "./components/button";
|
|
17
18
|
export { default as Alert, Props as AlertProps, Types as AlertTypes, Themes as AlertThemes, } from "./components/alert";
|
|
19
|
+
export { default as Toaster } from "./components/toaster";
|
|
20
|
+
export { clearToasts, pushToast, removeToast, } from "./components/toaster/toaster-actions";
|
|
18
21
|
export { default as Badge, Props as BadgeProps, Types as BudgeTypes, } from "./components/badge";
|
|
19
22
|
export { default as Modal, ModalPosition, ModalSize, Props as ModalProps, } from "./components/modal";
|
|
20
23
|
export { default as Menu, Props as MenuProps } from "./components/menu";
|
|
21
24
|
export { default as MenuItem, Props as MenuItemProps, } from "./components/menu/menu-item";
|
|
25
|
+
export { MenuInstance } from "./components/menu";
|
|
22
26
|
export { default as NativeMenu, Props as NativeMenuProps, } from "./components/native-menu";
|
|
23
27
|
export { default as NativeMenuItem, Props as NativeMenuItemProps, } from "./components/native-menu/native-menu-item";
|
|
24
28
|
export { default as Select, Props as SelectProps, SelectOption, } from "./components/select";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EACL,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACL,OAAO,IAAI,KAAK,EAChB,KAAK,IAAI,UAAU,EACnB,KAAK,IAAI,UAAU,EACnB,MAAM,IAAI,WAAW,GACtB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,8 @@ export * as DeviceUtils from "./utils/device";
|
|
|
13
13
|
export * as Services from "./services";
|
|
14
14
|
// middleware
|
|
15
15
|
export { default as MustAuth } from "./middleware/must-auth";
|
|
16
|
+
// providers
|
|
17
|
+
export { default as SocketProvider, useSocket, } from "./providers/socket-provider";
|
|
16
18
|
// hooks
|
|
17
19
|
export { useHasApplicationAccess } from "./hooks/user-has-application-access";
|
|
18
20
|
export { useHasOneOfPermissions, useHasPermission, } from "./hooks/use-has-permission-access";
|
|
@@ -21,6 +23,8 @@ export { useSeaTranslation, DEFAULT_TRANSLATIONS_MAP, } from "./hooks/use-transl
|
|
|
21
23
|
export { default as Icon } from "./components/icon";
|
|
22
24
|
export { default as Button } from "./components/button";
|
|
23
25
|
export { default as Alert, } from "./components/alert";
|
|
26
|
+
export { default as Toaster } from "./components/toaster";
|
|
27
|
+
export { clearToasts, pushToast, removeToast, } from "./components/toaster/toaster-actions";
|
|
24
28
|
export { default as Badge, } from "./components/badge";
|
|
25
29
|
export { default as Modal, } from "./components/modal";
|
|
26
30
|
export { default as Menu } from "./components/menu";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { io, Socket } from "socket.io-client";
|
|
3
|
+
export type SocketStatus = "idle" | "connecting" | "connected" | "disconnected" | "error";
|
|
4
|
+
export type SocketContextValue = {
|
|
5
|
+
socket: Socket | null;
|
|
6
|
+
status: SocketStatus;
|
|
7
|
+
error: Error | null;
|
|
8
|
+
};
|
|
9
|
+
export type SocketProviderProps = {
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
link: string;
|
|
12
|
+
autoConnect?: boolean;
|
|
13
|
+
options?: Parameters<typeof io>[1];
|
|
14
|
+
};
|
|
15
|
+
export default function SocketProvider({ children, link, autoConnect, options, }: Readonly<SocketProviderProps>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function useSocket(): SocketContextValue;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/socket-provider/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI9C,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,cAAc,GACd,OAAO,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,QAAQ,EACR,IAAI,EACJ,WAAkB,EAClB,OAAO,GACR,EAAE,QAAQ,CAAC,mBAAmB,CAAC,2CA4D/B;AAED,wBAAgB,SAAS,uBAMxB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useState, } from "react";
|
|
4
|
+
import { io } from "socket.io-client";
|
|
5
|
+
import { getCookie } from "../../utils/cookie";
|
|
6
|
+
import { CONSTANTS } from "sea-platform-helpers";
|
|
7
|
+
const SocketContext = createContext(null);
|
|
8
|
+
export default function SocketProvider({ children, link, autoConnect = true, options, }) {
|
|
9
|
+
const accessToken = getCookie(CONSTANTS.JWT.JWTCookieKey);
|
|
10
|
+
const [socket, setSocket] = useState(null);
|
|
11
|
+
const [status, setStatus] = useState("idle");
|
|
12
|
+
const [error, setError] = useState(null);
|
|
13
|
+
const connect = useCallback(() => {
|
|
14
|
+
setStatus("connecting");
|
|
15
|
+
const created = io(link, {
|
|
16
|
+
autoConnect,
|
|
17
|
+
auth: {
|
|
18
|
+
token: accessToken,
|
|
19
|
+
},
|
|
20
|
+
...options,
|
|
21
|
+
});
|
|
22
|
+
created.on("connect", () => {
|
|
23
|
+
setStatus("connected");
|
|
24
|
+
setError(null);
|
|
25
|
+
});
|
|
26
|
+
created.on("disconnect", () => {
|
|
27
|
+
setStatus("disconnected");
|
|
28
|
+
});
|
|
29
|
+
created.on("connect_error", (err) => {
|
|
30
|
+
setStatus("error");
|
|
31
|
+
setError(err instanceof Error ? err : new Error("Socket connect error"));
|
|
32
|
+
});
|
|
33
|
+
setSocket(created);
|
|
34
|
+
return created;
|
|
35
|
+
}, [autoConnect, link, options]);
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (!link) {
|
|
38
|
+
setStatus("error");
|
|
39
|
+
setError(new Error("Socket link is required"));
|
|
40
|
+
setSocket(null);
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
const created = connect();
|
|
44
|
+
return () => {
|
|
45
|
+
created.removeAllListeners();
|
|
46
|
+
created.disconnect();
|
|
47
|
+
setSocket(null);
|
|
48
|
+
setStatus("disconnected");
|
|
49
|
+
};
|
|
50
|
+
}, [connect, link]);
|
|
51
|
+
const value = useMemo(() => ({ socket, status, error }), [socket, status, error]);
|
|
52
|
+
return (_jsx(SocketContext.Provider, { value: value, children: children }));
|
|
53
|
+
}
|
|
54
|
+
export function useSocket() {
|
|
55
|
+
const context = useContext(SocketContext);
|
|
56
|
+
if (!context) {
|
|
57
|
+
throw new Error("useSocket must be used within SocketProvider");
|
|
58
|
+
}
|
|
59
|
+
return context;
|
|
60
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/index.ts","../src/hoc/can-access-application/index.tsx","../src/hoc/with-authorization/index.tsx","../src/components/accordion/index.tsx","../src/components/alert/index.tsx","../src/components/auto-complete/auto-complete-context.tsx","../src/components/auto-complete/auto-complete-dropdown.tsx","../src/components/auto-complete/auto-complete-input.tsx","../src/components/auto-complete/auto-complete-selected.tsx","../src/components/auto-complete/auto-complete.tsx","../src/components/auto-complete/index.tsx","../src/components/auto-complete/use-autocomplete.ts","../src/components/auto-complete-input/index.tsx","../src/components/avatar/index.tsx","../src/components/badge/index.tsx","../src/components/breadcrumb/index.tsx","../src/components/break-line/index.tsx","../src/components/button/index.tsx","../src/components/calendar/index.tsx","../src/components/cards-list/index.tsx","../src/components/carousel/index.tsx","../src/components/checkbox/index.tsx","../src/components/color-picker/index.tsx","../src/components/comments-container/index.tsx","../src/components/comments-container/comment-event-bus/index.ts","../src/components/comments-container/comment-form/index.tsx","../src/components/comments-container/comment-item/index.tsx","../src/components/comments-container/comments-list/index.tsx","../src/components/comments-container/constants/index.ts","../src/components/comments-container/use-comments/index.tsx","../src/components/confirm/index.tsx","../src/components/count-down/index.tsx","../src/components/day-calendar/index.tsx","../src/components/drawer/index.tsx","../src/components/editable-text/index.tsx","../src/components/expandable-text/index.tsx","../src/components/file-input/index.tsx","../src/components/file-input/components/file-item/index.tsx","../src/components/firebase-token-handler/index.tsx","../src/components/form/index.tsx","../src/components/icon/index.tsx","../src/components/input/index.tsx","../src/components/item-not-found/index.tsx","../src/components/list-item/index.tsx","../src/components/list-item/components/page-button/index.tsx","../src/components/list-item/components/pagination/index.tsx","../src/components/loader/index.tsx","../src/components/log-activities-container/index.tsx","../src/components/log-activities-container/log-activities-list/index.tsx","../src/components/log-activities-container/log-activity-item/index.tsx","../src/components/log-activities-container/use-log-activities/index.tsx","../src/components/menu/index.tsx","../src/components/menu/menu-item/index.tsx","../src/components/modal/index.tsx","../src/components/month-calendar/index.tsx","../src/components/native-menu/index.tsx","../src/components/native-menu/native-menu-item/index.tsx","../src/components/not-authorized/index.tsx","../src/components/notifications-menu/index.tsx","../src/components/otp-input/index.tsx","../src/components/paper/index.tsx","../src/components/progress-bar/index.tsx","../src/components/radio-button/index.tsx","../src/components/search-input/index.tsx","../src/components/searchable-select/index.tsx","../src/components/select/selectchips.tsx","../src/components/select/selectcontrol.tsx","../src/components/select/selectdropdowncontent.tsx","../src/components/select/selectplaceholder.tsx","../src/components/select/selecttypes.ts","../src/components/select/selectview.tsx","../src/components/select/index.tsx","../src/components/select/useselectportal.ts","../src/components/skeleton/index.tsx","../src/components/stacked-avatars/index.tsx","../src/components/tab/index.tsx","../src/components/table/index.tsx","../src/components/text-editor/index.tsx","../src/components/text-editor/components/toolbar/index.tsx","../src/components/text-editor/utils/index.ts","../src/components/textarea/index.tsx","../src/components/toggle/index.tsx","../src/components/tooltip/index.tsx","../src/components/tree-checkbox/index.tsx","../src/components/tree-checkbox/components/tree-checkbox-item/index.tsx","../src/components/tree-checkbox/utils/index.ts","../src/components/week-calendar/index.tsx","../src/constants/index.ts","../src/hooks/list-items-hook/types.ts","../src/hooks/list-items-hook/usebulkactions.ts","../src/hooks/list-items-hook/usefilters.ts","../src/hooks/list-items-hook/usepagination.ts","../src/hooks/use-has-permission-access/index.ts","../src/hooks/use-translation/index.ts","../src/hooks/user-has-application-access/index.ts","../src/middleware/must-auth/index.tsx","../src/services/index.ts","../src/services/remote-service/index.ts","../src/utils/auth-axios/index.ts","../src/utils/axios/index.ts","../src/utils/color/index.ts","../src/utils/cookie/index.ts","../src/utils/device/index.ts","../src/utils/file/index.ts","../src/utils/firebase-client/firebase.ts","../src/utils/firebase-client/index.ts","../src/utils/firebase-client/types.ts","../src/utils/jwt/index.ts","../src/utils/notification-localstorage/index.ts","../src/utils/validation/index.ts"],"version":"5.9.3"}
|
|
1
|
+
{"root":["../src/index.ts","../src/hoc/can-access-application/index.tsx","../src/hoc/with-authorization/index.tsx","../src/components/accordion/index.tsx","../src/components/alert/index.tsx","../src/components/auto-complete/auto-complete-context.tsx","../src/components/auto-complete/auto-complete-dropdown.tsx","../src/components/auto-complete/auto-complete-input.tsx","../src/components/auto-complete/auto-complete-selected.tsx","../src/components/auto-complete/auto-complete.tsx","../src/components/auto-complete/index.tsx","../src/components/auto-complete/use-autocomplete.ts","../src/components/auto-complete-input/index.tsx","../src/components/avatar/index.tsx","../src/components/badge/index.tsx","../src/components/breadcrumb/index.tsx","../src/components/break-line/index.tsx","../src/components/button/index.tsx","../src/components/calendar/index.tsx","../src/components/cards-list/index.tsx","../src/components/carousel/index.tsx","../src/components/checkbox/index.tsx","../src/components/color-picker/index.tsx","../src/components/comments-container/index.tsx","../src/components/comments-container/comment-event-bus/index.ts","../src/components/comments-container/comment-form/index.tsx","../src/components/comments-container/comment-item/index.tsx","../src/components/comments-container/comments-list/index.tsx","../src/components/comments-container/constants/index.ts","../src/components/comments-container/use-comments/index.tsx","../src/components/confirm/index.tsx","../src/components/count-down/index.tsx","../src/components/day-calendar/index.tsx","../src/components/drawer/index.tsx","../src/components/editable-text/index.tsx","../src/components/expandable-text/index.tsx","../src/components/file-input/index.tsx","../src/components/file-input/components/file-item/index.tsx","../src/components/firebase-token-handler/index.tsx","../src/components/form/index.tsx","../src/components/icon/index.tsx","../src/components/input/index.tsx","../src/components/item-not-found/index.tsx","../src/components/list-item/index.tsx","../src/components/list-item/components/page-button/index.tsx","../src/components/list-item/components/pagination/index.tsx","../src/components/loader/index.tsx","../src/components/log-activities-container/index.tsx","../src/components/log-activities-container/log-activities-list/index.tsx","../src/components/log-activities-container/log-activity-item/index.tsx","../src/components/log-activities-container/use-log-activities/index.tsx","../src/components/menu/index.tsx","../src/components/menu/menu-item/index.tsx","../src/components/modal/index.tsx","../src/components/month-calendar/index.tsx","../src/components/native-menu/index.tsx","../src/components/native-menu/native-menu-item/index.tsx","../src/components/not-authorized/index.tsx","../src/components/notifications-menu/index.tsx","../src/components/otp-input/index.tsx","../src/components/paper/index.tsx","../src/components/progress-bar/index.tsx","../src/components/radio-button/index.tsx","../src/components/search-input/index.tsx","../src/components/searchable-select/index.tsx","../src/components/select/selectchips.tsx","../src/components/select/selectcontrol.tsx","../src/components/select/selectdropdowncontent.tsx","../src/components/select/selectplaceholder.tsx","../src/components/select/selecttypes.ts","../src/components/select/selectview.tsx","../src/components/select/index.tsx","../src/components/select/useselectportal.ts","../src/components/skeleton/index.tsx","../src/components/stacked-avatars/index.tsx","../src/components/tab/index.tsx","../src/components/table/index.tsx","../src/components/text-editor/index.tsx","../src/components/text-editor/components/toolbar/index.tsx","../src/components/text-editor/utils/index.ts","../src/components/textarea/index.tsx","../src/components/toaster/index.tsx","../src/components/toaster/toaster-actions/index.ts","../src/components/toaster/toaster-card/index.tsx","../src/components/toaster/toaster-hook/index.ts","../src/components/toaster/toaster-store/index.ts","../src/components/toggle/index.tsx","../src/components/tooltip/index.tsx","../src/components/tree-checkbox/index.tsx","../src/components/tree-checkbox/components/tree-checkbox-item/index.tsx","../src/components/tree-checkbox/utils/index.ts","../src/components/week-calendar/index.tsx","../src/constants/index.ts","../src/hooks/list-items-hook/types.ts","../src/hooks/list-items-hook/usebulkactions.ts","../src/hooks/list-items-hook/usefilters.ts","../src/hooks/list-items-hook/usepagination.ts","../src/hooks/use-has-permission-access/index.ts","../src/hooks/use-translation/index.ts","../src/hooks/user-has-application-access/index.ts","../src/middleware/must-auth/index.tsx","../src/providers/socket-provider/index.tsx","../src/services/index.ts","../src/services/remote-service/index.ts","../src/utils/auth-axios/index.ts","../src/utils/axios/index.ts","../src/utils/color/index.ts","../src/utils/cookie/index.ts","../src/utils/device/index.ts","../src/utils/file/index.ts","../src/utils/firebase-client/firebase.ts","../src/utils/firebase-client/index.ts","../src/utils/firebase-client/types.ts","../src/utils/jwt/index.ts","../src/utils/notification-localstorage/index.ts","../src/utils/validation/index.ts"],"version":"5.9.3"}
|
|
@@ -5,6 +5,7 @@ type AxiosOptions = {
|
|
|
5
5
|
storage?: "localStorage" | "cookie";
|
|
6
6
|
deviceIdKey?: string;
|
|
7
7
|
cookieDomain?: string;
|
|
8
|
+
withTimeZone?: boolean;
|
|
8
9
|
onError?: (message: string) => void;
|
|
9
10
|
};
|
|
10
11
|
export declare const createInstance: (baseURL: string, options?: AxiosOptions) => import("axios").AxiosInstance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/axios/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAKzD,KAAK,YAAY,GAAG;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,SAAS,MAAM,EACf,UAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/axios/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAKzD,KAAK,YAAY,GAAG;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,SAAS,MAAM,EACf,UAAS,YAQR,kCAoEF,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import axios from "axios";
|
|
2
2
|
import { getCookie, removeCookie } from "../cookie";
|
|
3
|
-
import { CONSTANTS } from "sea-platform-helpers";
|
|
3
|
+
import { CONSTANTS, Utils } from "sea-platform-helpers";
|
|
4
4
|
import { getDeviceId } from "../device";
|
|
5
5
|
export const createInstance = (baseURL, options = {
|
|
6
6
|
withCredentials: true,
|
|
@@ -8,6 +8,7 @@ export const createInstance = (baseURL, options = {
|
|
|
8
8
|
storage: "localStorage",
|
|
9
9
|
deviceIdKey: CONSTANTS.Server.DEVICE_ID_HEADER_KEY,
|
|
10
10
|
cookieDomain: ".platform.sea.ac.ae", // TODO: fix the hardcoded value
|
|
11
|
+
withTimeZone: false,
|
|
11
12
|
onError: (message) => console.log("Axios error:\n", message),
|
|
12
13
|
}) => {
|
|
13
14
|
const axiosInstance = axios.create({
|
|
@@ -28,6 +29,10 @@ export const createInstance = (baseURL, options = {
|
|
|
28
29
|
console.log("deviceId:", deviceId);
|
|
29
30
|
config.headers["Authorization"] = `Bearer ${token}`;
|
|
30
31
|
config.headers[(_a = options.deviceIdKey) !== null && _a !== void 0 ? _a : CONSTANTS.Server.DEVICE_ID_HEADER_KEY] = deviceId;
|
|
32
|
+
if (options.withTimeZone) {
|
|
33
|
+
const timeZone = Utils.Moment.moment.tz.guess();
|
|
34
|
+
config.headers[CONSTANTS.Server.TIMEZONE_HEADER_KEY] = timeZone;
|
|
35
|
+
}
|
|
31
36
|
return config;
|
|
32
37
|
}, (error) => {
|
|
33
38
|
// Handle request error
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sea-react-components",
|
|
3
3
|
"description": "SEA react components library",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.35",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "tsc --build && npx postcss src/styles.css -o dist/styles.css && npx postcss src/components/text-editor/style.css -o dist/components/text-editor/style.css",
|
|
@@ -48,8 +48,9 @@
|
|
|
48
48
|
"jwt-decode": "^4.0.0",
|
|
49
49
|
"lowlight": "^3.3.0",
|
|
50
50
|
"react-dom": "^19.2.3",
|
|
51
|
-
"sea-platform-helpers": "^1.5.
|
|
51
|
+
"sea-platform-helpers": "^1.5.30",
|
|
52
52
|
"sea-react-components": "file:",
|
|
53
|
+
"socket.io-client": "^4.8.3",
|
|
53
54
|
"uuid": "^13.0.0",
|
|
54
55
|
"yup": "^1.5.0"
|
|
55
56
|
},
|