@yimingliao/cms 0.0.145 → 0.0.146

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.
Files changed (97) hide show
  1. package/dist/export/client/index.js +1 -71
  2. package/dist/src/client/interfaces/components/shadcn/sidebar.js +1 -1
  3. package/dist/src/client/interfaces/styles/constants.js +1 -3
  4. package/dist/types/export/client/components/index.d.ts +2 -0
  5. package/dist/types/export/client/components/index.d.ts.map +1 -0
  6. package/dist/types/export/client/index.d.ts +1 -1
  7. package/dist/types/export/client/index.d.ts.map +1 -1
  8. package/dist/types/src/client/index.d.ts +1 -1
  9. package/dist/types/src/client/index.d.ts.map +1 -1
  10. package/dist/types/src/client/interfaces/index.d.ts +0 -2
  11. package/dist/types/src/client/interfaces/index.d.ts.map +1 -1
  12. package/package.json +6 -1
  13. package/dist/src/client/applications/ui/use-parent-pathname.js +0 -10
  14. package/dist/src/client/interfaces/components/admin-initializer.js +0 -29
  15. package/dist/src/client/interfaces/components/resources/file/file-card.js +0 -87
  16. package/dist/src/client/interfaces/components/resources/file/file-list.js +0 -159
  17. package/dist/src/client/interfaces/components/resources/file/is-locked-buttons.js +0 -71
  18. package/dist/src/client/interfaces/components/resources/file/type-buttons.js +0 -62
  19. package/dist/src/client/interfaces/components/ui/blocks/list-cards-container/list-cards-container.js +0 -96
  20. package/dist/src/client/interfaces/components/ui/blocks/list-cards-container/page-size-selector.js +0 -63
  21. package/dist/src/client/interfaces/components/ui/blocks/list-cards-container/pagination.js +0 -94
  22. package/dist/src/client/interfaces/components/ui/blocks/page-header/page-header-title.js +0 -26
  23. package/dist/src/client/interfaces/components/ui/blocks/page-header/page-header.js +0 -74
  24. package/dist/src/client/interfaces/components/ui/blocks/page-header/presets/batch-create.js +0 -33
  25. package/dist/src/client/interfaces/components/ui/blocks/page-header/presets/batch.js +0 -39
  26. package/dist/src/client/interfaces/components/ui/blocks/page-header/presets/create.js +0 -33
  27. package/dist/src/client/interfaces/components/ui/blocks/page-header/presets/edit.js +0 -33
  28. package/dist/src/client/interfaces/components/ui/blocks/page-header/presets/index.js +0 -48
  29. package/dist/src/client/interfaces/components/ui/blocks/page-header/presets/show.js +0 -61
  30. package/dist/src/client/interfaces/components/ui/blocks/page-header/presets/trash.js +0 -39
  31. package/dist/src/client/interfaces/components/ui/buttons/return-button.js +0 -61
  32. package/dist/src/client/interfaces/components/ui/cards/action-buttons-card.js +0 -82
  33. package/dist/src/client/interfaces/components/ui/cards/resource-card/card-status-bar.js +0 -51
  34. package/dist/src/client/interfaces/components/ui/cards/resource-card/card-text-content.js +0 -38
  35. package/dist/src/client/interfaces/components/ui/cards/resource-card/resource-card.js +0 -77
  36. package/dist/src/client/interfaces/components/ui/display/array-list.js +0 -69
  37. package/dist/src/client/interfaces/components/ui/display/badge.js +0 -41
  38. package/dist/src/client/interfaces/components/ui/display/html-display.js +0 -32
  39. package/dist/src/client/interfaces/components/ui/display/object-array-list.js +0 -75
  40. package/dist/src/client/interfaces/components/ui/features/accordion/accordion-container.js +0 -31
  41. package/dist/src/client/interfaces/components/ui/features/accordion/accordion-header.js +0 -34
  42. package/dist/src/client/interfaces/components/ui/features/accordion/accordion.js +0 -81
  43. package/dist/src/client/interfaces/components/ui/features/expandable-list/expand-bar.js +0 -39
  44. package/dist/src/client/interfaces/components/ui/features/expandable-list/expandable-list-content.js +0 -49
  45. package/dist/src/client/interfaces/components/ui/features/expandable-list/expandable-list.js +0 -53
  46. package/dist/src/client/interfaces/components/ui/features/external-link.js +0 -15
  47. package/dist/src/client/interfaces/components/ui/features/file/file-info/file-info.js +0 -118
  48. package/dist/src/client/interfaces/components/ui/features/file/file-info/file-name.js +0 -48
  49. package/dist/src/client/interfaces/components/ui/features/file/file-picker/file-picker-container.js +0 -74
  50. package/dist/src/client/interfaces/components/ui/features/file/file-picker/file-picker-placeholder.js +0 -48
  51. package/dist/src/client/interfaces/components/ui/features/file/file-picker/file-picker.js +0 -109
  52. package/dist/src/client/interfaces/components/ui/features/file/file-preview/file-preview-list.js +0 -85
  53. package/dist/src/client/interfaces/components/ui/features/file/file-preview/file-preview-meta.js +0 -40
  54. package/dist/src/client/interfaces/components/ui/features/file/file-preview/file-preview.js +0 -113
  55. package/dist/src/client/interfaces/components/ui/features/file/uploader.js +0 -101
  56. package/dist/src/client/interfaces/components/ui/features/pick-modal/pick-modal-body.js +0 -112
  57. package/dist/src/client/interfaces/components/ui/features/pick-modal/pick-modal-trigger.js +0 -97
  58. package/dist/src/client/interfaces/components/ui/features/pick-modal/pick-modal.js +0 -77
  59. package/dist/src/client/interfaces/components/ui/features/smart-image.js +0 -57
  60. package/dist/src/client/interfaces/components/ui/features/tick.js +0 -27
  61. package/dist/src/client/interfaces/components/ui/form/containers/fields-container.js +0 -24
  62. package/dist/src/client/interfaces/components/ui/form/containers/main-fields.js +0 -25
  63. package/dist/src/client/interfaces/components/ui/form/containers/side-fields.js +0 -24
  64. package/dist/src/client/interfaces/components/ui/form/control-fields/built-in-fields.js +0 -9
  65. package/dist/src/client/interfaces/components/ui/form/control-fields/control-fields-display.js +0 -112
  66. package/dist/src/client/interfaces/components/ui/form/control-fields/control-fields-input.js +0 -158
  67. package/dist/src/client/interfaces/components/ui/form/control-fields/control-fields.js +0 -59
  68. package/dist/src/client/interfaces/components/ui/form/field-body.js +0 -79
  69. package/dist/src/client/interfaces/components/ui/form/index-field.js +0 -87
  70. package/dist/src/client/interfaces/components/ui/form/slug-field.js +0 -82
  71. package/dist/src/client/interfaces/components/ui/inputs/array-input.js +0 -110
  72. package/dist/src/client/interfaces/components/ui/inputs/checkbox.js +0 -93
  73. package/dist/src/client/interfaces/components/ui/inputs/editor/base/base-editor.js +0 -143
  74. package/dist/src/client/interfaces/components/ui/inputs/editor/base/built-in-plugins.js +0 -71
  75. package/dist/src/client/interfaces/components/ui/inputs/editor/base/configs/heading.config.js +0 -41
  76. package/dist/src/client/interfaces/components/ui/inputs/editor/base/configs/image.config.js +0 -32
  77. package/dist/src/client/interfaces/components/ui/inputs/editor/base/configs/table.config.js +0 -15
  78. package/dist/src/client/interfaces/components/ui/inputs/editor/editor.js +0 -112
  79. package/dist/src/client/interfaces/components/ui/inputs/editor/plugins/asset-manager/asset-manager.js +0 -24
  80. package/dist/src/client/interfaces/components/ui/inputs/editor/plugins/asset-manager/use-control-asset-mamager.js +0 -26
  81. package/dist/src/client/interfaces/components/ui/inputs/editor/plugins/file-repository/upload-adapter.js +0 -84
  82. package/dist/src/client/interfaces/components/ui/inputs/editor/plugins/word-count-display/icons.js +0 -17
  83. package/dist/src/client/interfaces/components/ui/inputs/editor/plugins/word-count-display/word-count-display.js +0 -81
  84. package/dist/src/client/interfaces/components/ui/inputs/editor/use-init-editor/use-init-editor.js +0 -50
  85. package/dist/src/client/interfaces/components/ui/inputs/search-input.js +0 -61
  86. package/dist/src/client/interfaces/components/ui/inputs/select.js +0 -69
  87. package/dist/src/client/interfaces/components/ui/inputs/textarea.js +0 -62
  88. package/dist/src/client/interfaces/components/ui/layouts/content-container.js +0 -38
  89. package/dist/src/client/interfaces/components/ui/layouts/navbar/i18n-selector.js +0 -42
  90. package/dist/src/client/interfaces/components/ui/layouts/navbar/nav-user.js +0 -106
  91. package/dist/src/client/interfaces/components/ui/layouts/navbar/navbar.js +0 -84
  92. package/dist/src/client/interfaces/components/ui/layouts/navbar/sign-out-button.js +0 -58
  93. package/dist/src/client/interfaces/components/ui/layouts/navbar/theme-selector.js +0 -51
  94. package/dist/src/client/interfaces/components/ui/layouts/sidebar/nav-main.js +0 -99
  95. package/dist/src/constants/file.js +0 -27
  96. package/dist/src/shared/list-items.js +0 -3
  97. package/dist/src/shared/utils/debounce.js +0 -14
@@ -1,84 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from 'react/jsx-runtime';
3
- import { useTranslator } from 'intor/react';
4
- import { SidebarIcon, House, SquareArrowOutUpRight } from 'lucide-react';
5
- import { PATHS } from '../../../../../../constants/paths/index.js';
6
- import '../../../../../../constants/redirect-paths.js';
7
- import { useAdmin } from '../../../../../infrastructure/contexts/admin.js';
8
- import 'next-themes';
9
- import '@tanstack/react-query';
10
- import 'react';
11
- import 'mime-types';
12
- import 'sonner';
13
- import '@radix-ui/react-avatar';
14
- import 'ua-parser-js';
15
- import 'clsx';
16
- import 'tailwind-merge';
17
- import 'next/navigation';
18
- import '../../../shadcn/badge.js';
19
- import '../../../shadcn/button.js';
20
- import '@radix-ui/react-collapsible';
21
- import '@radix-ui/react-dialog';
22
- import '@radix-ui/react-dropdown-menu';
23
- import '../../../shadcn/input-group.js';
24
- import '@radix-ui/react-label';
25
- import '@radix-ui/react-select';
26
- import { Separator } from '../../../shadcn/separator.js';
27
- import { useSidebar } from '../../../shadcn/sidebar.js';
28
- import '@radix-ui/react-tooltip';
29
- import { Button } from '../../buttons/button.js';
30
- import { NavUser } from './nav-user.js';
31
- import { ThemeSelector } from './theme-selector.js';
32
-
33
- function createNavbar({
34
- webUrl,
35
- storageUrl,
36
- I18nSelector,
37
- SignOutButton
38
- }) {
39
- return function Navbar() {
40
- const { toggleSidebar } = useSidebar();
41
- const { admin, isLoading } = useAdmin();
42
- const { t } = useTranslator();
43
- return /* @__PURE__ */ jsx("header", { className: "bg-background sticky top-0 z-50 flex w-full items-center border-b", children: /* @__PURE__ */ jsxs("div", { className: "flex h-(--header-height) w-full items-center gap-2 px-2", children: [
44
- /* @__PURE__ */ jsx(
45
- Button,
46
- {
47
- className: "h-8 w-8",
48
- variant: "ghost",
49
- size: "icon",
50
- onClick: toggleSidebar,
51
- children: /* @__PURE__ */ jsx(SidebarIcon, {})
52
- }
53
- ),
54
- /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "mr-1 h-4" }),
55
- /* @__PURE__ */ jsx(
56
- Button,
57
- {
58
- variant: "outline",
59
- size: "icon",
60
- href: PATHS.main.dashboard.path,
61
- children: /* @__PURE__ */ jsx(House, {})
62
- }
63
- ),
64
- /* @__PURE__ */ jsxs(Button, { variant: "outline", href: webUrl, openNewTab: true, children: [
65
- /* @__PURE__ */ jsx(SquareArrowOutUpRight, {}),
66
- t("ui.layout.navbar.website-homepage.text")
67
- ] }),
68
- /* @__PURE__ */ jsx("div", { className: "ml-auto" }),
69
- /* @__PURE__ */ jsx(I18nSelector, {}),
70
- /* @__PURE__ */ jsx(ThemeSelector, {}),
71
- /* @__PURE__ */ jsx(
72
- NavUser,
73
- {
74
- storageUrl,
75
- SignOutButton: /* @__PURE__ */ jsx(SignOutButton, {}),
76
- admin,
77
- isLoading
78
- }
79
- )
80
- ] }) });
81
- };
82
- }
83
-
84
- export { createNavbar };
@@ -1,58 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from 'react/jsx-runtime';
3
- import { useTranslator } from 'intor/react';
4
- import { LogOut } from 'lucide-react';
5
- import { useRouter } from 'next/navigation';
6
- import { PATHS } from '../../../../../../constants/paths/index.js';
7
- import '../../../../../../constants/redirect-paths.js';
8
- import 'react';
9
- import 'ua-parser-js';
10
- import 'clsx';
11
- import 'tailwind-merge';
12
- import { isConfirm } from '../../../../../applications/ui/is-confirm.js';
13
- import { useAdmin } from '../../../../../infrastructure/contexts/admin.js';
14
- import 'next-themes';
15
- import '@tanstack/react-query';
16
- import 'mime-types';
17
- import 'sonner';
18
- import '@radix-ui/react-avatar';
19
- import '../../../shadcn/badge.js';
20
- import '../../../shadcn/button.js';
21
- import '@radix-ui/react-collapsible';
22
- import '@radix-ui/react-dialog';
23
- import { DropdownMenuItem } from '../../../shadcn/dropdown-menu.js';
24
- import '../../../shadcn/input-group.js';
25
- import '@radix-ui/react-label';
26
- import '@radix-ui/react-select';
27
- import '@radix-ui/react-separator';
28
- import '../../../shadcn/sidebar.js';
29
- import { Spinner } from '../../../shadcn/spinner.js';
30
- import '@radix-ui/react-tooltip';
31
-
32
- function createSignOutButton({
33
- useCommand,
34
- signOutAction
35
- }) {
36
- return function SignOutButton() {
37
- const { t } = useTranslator();
38
- const router = useRouter();
39
- const { setAdmin } = useAdmin();
40
- const { execute, isRedirecting } = useCommand(signOutAction, {
41
- onSuccess: () => {
42
- setAdmin(null);
43
- router.push(PATHS.auth.signIn.path);
44
- }
45
- });
46
- const handleSignOut = () => {
47
- if (!isConfirm(t)) return;
48
- void execute();
49
- };
50
- const buttonText = isRedirecting ? /* @__PURE__ */ jsx(Spinner, {}) : t("auth.sign-out.text");
51
- return /* @__PURE__ */ jsx("button", { onClick: handleSignOut, className: "w-full", children: /* @__PURE__ */ jsxs(DropdownMenuItem, { variant: "destructive", children: [
52
- /* @__PURE__ */ jsx(LogOut, {}),
53
- buttonText
54
- ] }) });
55
- };
56
- }
57
-
58
- export { createSignOutButton };
@@ -1,51 +0,0 @@
1
- "use client";
2
- import { jsxs, jsx } from 'react/jsx-runtime';
3
- import { useTranslator } from 'intor/react';
4
- import { Sun, Moon, TvMinimal } from 'lucide-react';
5
- import { useTheme } from 'next-themes';
6
- import '@radix-ui/react-avatar';
7
- import 'react';
8
- import 'ua-parser-js';
9
- import 'clsx';
10
- import 'tailwind-merge';
11
- import 'next/navigation';
12
- import '../../../shadcn/badge.js';
13
- import '../../../shadcn/button.js';
14
- import '@radix-ui/react-collapsible';
15
- import '@radix-ui/react-dialog';
16
- import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from '../../../shadcn/dropdown-menu.js';
17
- import '../../../shadcn/input-group.js';
18
- import '@radix-ui/react-label';
19
- import '@radix-ui/react-select';
20
- import '@radix-ui/react-separator';
21
- import '../../../shadcn/sidebar.js';
22
- import '@radix-ui/react-tooltip';
23
- import { Button } from '../../buttons/button.js';
24
-
25
- function ThemeSelector() {
26
- const { setTheme } = useTheme();
27
- const { t } = useTranslator();
28
- return /* @__PURE__ */ jsxs(DropdownMenu, { children: [
29
- /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "outline", size: "icon", children: [
30
- /* @__PURE__ */ jsx(Sun, { className: "h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }),
31
- /* @__PURE__ */ jsx(Moon, { className: "absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" }),
32
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Select theme" })
33
- ] }) }),
34
- /* @__PURE__ */ jsxs(DropdownMenuContent, { align: "end", children: [
35
- /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => setTheme("light"), children: [
36
- /* @__PURE__ */ jsx(Sun, {}),
37
- t("ui.layout.navbar.theme.light.text")
38
- ] }),
39
- /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => setTheme("dark"), children: [
40
- /* @__PURE__ */ jsx(Moon, {}),
41
- t("ui.layout.navbar.theme.dark.text")
42
- ] }),
43
- /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => setTheme("system"), children: [
44
- /* @__PURE__ */ jsx(TvMinimal, {}),
45
- t("ui.layout.navbar.theme.system.text")
46
- ] })
47
- ] })
48
- ] });
49
- }
50
-
51
- export { ThemeSelector };
@@ -1,99 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
- import { ChevronRight } from 'lucide-react';
4
- import Link from 'next/link';
5
- import { usePathname } from 'next/navigation';
6
- import { useState, useEffect } from 'react';
7
- import '@radix-ui/react-avatar';
8
- import 'ua-parser-js';
9
- import 'clsx';
10
- import 'tailwind-merge';
11
- import '../../../shadcn/badge.js';
12
- import '../../../shadcn/button.js';
13
- import { Collapsible, CollapsibleTrigger, CollapsibleContent } from '../../../shadcn/collapsible.js';
14
- import '@radix-ui/react-dialog';
15
- import '@radix-ui/react-dropdown-menu';
16
- import '../../../shadcn/input-group.js';
17
- import '@radix-ui/react-label';
18
- import '@radix-ui/react-select';
19
- import { Separator } from '../../../shadcn/separator.js';
20
- import { SidebarGroup, SidebarMenu, SidebarMenuItem, SidebarMenuButton, SidebarMenuAction, SidebarMenuSub, SidebarMenuSubItem, SidebarMenuSubButton } from '../../../shadcn/sidebar.js';
21
- import '@radix-ui/react-tooltip';
22
-
23
- const getMainPath = (path) => "/" + path.split("/").slice(3).filter(Boolean).join("/");
24
- const toSegments = (path) => path.split("/").filter(Boolean);
25
- const isSegmentMatch = (current, target) => {
26
- const currentSeg = toSegments(current);
27
- const targetSeg = toSegments(target);
28
- if (targetSeg.length > currentSeg.length) return false;
29
- return targetSeg.every((seg, i) => currentSeg[i] === seg);
30
- };
31
- function NavMain({ items }) {
32
- const pathname = usePathname();
33
- const [openItems, setOpenItems] = useState([]);
34
- const toggleItem = (title, open) => {
35
- setOpenItems(
36
- (prev) => open ? [...prev, title] : prev.filter((t) => t !== title)
37
- );
38
- };
39
- const parsedPathname = getMainPath(pathname);
40
- useEffect(() => {
41
- const matched = items.filter(
42
- (item) => item.url ? isSegmentMatch(parsedPathname, getMainPath(item.url)) : false
43
- ).map((item) => item.title || "");
44
- queueMicrotask(() => setOpenItems(matched));
45
- }, [parsedPathname, items]);
46
- return /* @__PURE__ */ jsx(SidebarGroup, { children: /* @__PURE__ */ jsx(SidebarMenu, { children: items.map((item, index) => {
47
- const isOpen = openItems.includes(item.title || "");
48
- const parsedUrl = getMainPath(item.url || "");
49
- const isCurrentPath = item.url ? isSegmentMatch(parsedPathname, parsedUrl) : false;
50
- return /* @__PURE__ */ jsx(
51
- Collapsible,
52
- {
53
- asChild: true,
54
- open: isOpen,
55
- onOpenChange: (open) => toggleItem(item.title || "", open),
56
- children: /* @__PURE__ */ jsxs(SidebarMenuItem, { className: "[&>button]:top-2 [&>button]:size-6", children: [
57
- !item.isSeparator ? /* @__PURE__ */ jsx(
58
- SidebarMenuButton,
59
- {
60
- asChild: true,
61
- size: "md",
62
- isActive: isCurrentPath,
63
- children: /* @__PURE__ */ jsxs(Link, { href: item.url || "", children: [
64
- item.icon && /* @__PURE__ */ jsx(item.icon, {}),
65
- /* @__PURE__ */ jsx("span", { children: item.title })
66
- ] })
67
- }
68
- ) : /* @__PURE__ */ jsx(Separator, {}),
69
- item.items?.length ? /* @__PURE__ */ jsxs(Fragment, { children: [
70
- /* @__PURE__ */ jsx(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(SidebarMenuAction, { className: "data-[state=open]:rotate-90", children: [
71
- /* @__PURE__ */ jsx(ChevronRight, {}),
72
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle" })
73
- ] }) }),
74
- /* @__PURE__ */ jsx(CollapsibleContent, { children: /* @__PURE__ */ jsx(SidebarMenuSub, { children: item.items?.map((subItem, index2) => {
75
- const parsedPathname2 = getMainPath(pathname);
76
- const parsedUrl2 = getMainPath(subItem.url || "");
77
- const isCurrentPath2 = subItem.url ? isSegmentMatch(parsedPathname2, parsedUrl2) : false;
78
- return /* @__PURE__ */ jsx(SidebarMenuSubItem, { children: !subItem.isSeparator ? /* @__PURE__ */ jsx(
79
- SidebarMenuSubButton,
80
- {
81
- asChild: true,
82
- size: "lg",
83
- isActive: isCurrentPath2,
84
- children: /* @__PURE__ */ jsxs(Link, { href: subItem.url || "", children: [
85
- subItem.icon && /* @__PURE__ */ jsx(subItem.icon, {}),
86
- /* @__PURE__ */ jsx("span", { children: subItem.title })
87
- ] })
88
- }
89
- ) : /* @__PURE__ */ jsx(Separator, {}) }, index2);
90
- }) }) })
91
- ] }) : null
92
- ] })
93
- },
94
- index
95
- );
96
- }) }) });
97
- }
98
-
99
- export { NavMain };
@@ -1,27 +0,0 @@
1
- const IMAGE_EXTENSIONS = [
2
- "png",
3
- "jpg",
4
- "jpeg",
5
- "webp",
6
- "gif",
7
- "avif",
8
- "svg",
9
- "bmp",
10
- "tiff"
11
- ];
12
- const VIDEO_EXTENSIONS = [
13
- "mp4",
14
- "mov",
15
- "webm",
16
- "ogg",
17
- "avi",
18
- "mkv",
19
- "flv",
20
- "wmv",
21
- "m4v",
22
- "3gp",
23
- "ts",
24
- "mjpeg"
25
- ];
26
-
27
- export { IMAGE_EXTENSIONS, VIDEO_EXTENSIONS };
@@ -1,3 +0,0 @@
1
- const DO_NOT_FETCH_KEY = "do-not-fetch";
2
-
3
- export { DO_NOT_FETCH_KEY };
@@ -1,14 +0,0 @@
1
- const debounce = (fn, delay = 100) => {
2
- let timer;
3
- const debouncedFn = (...args) => {
4
- if (timer) clearTimeout(timer);
5
- timer = setTimeout(() => fn(...args), delay);
6
- };
7
- debouncedFn.clear = () => {
8
- if (timer) clearTimeout(timer);
9
- timer = void 0;
10
- };
11
- return debouncedFn;
12
- };
13
-
14
- export { debounce };