@simplysm/solid 13.0.32 → 13.0.33
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/README.md +39 -14
- package/dist/hooks/useLogger.js +4 -4
- package/dist/hooks/useLogger.js.map +1 -1
- package/dist/hooks/useSyncConfig.d.ts +1 -1
- package/dist/hooks/useSyncConfig.d.ts.map +1 -1
- package/dist/hooks/useSyncConfig.js +6 -4
- package/dist/hooks/useSyncConfig.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/{hooks/useClipboardValueCopy.d.ts → providers/ClipboardProvider.d.ts} +4 -3
- package/dist/providers/ClipboardProvider.d.ts.map +1 -0
- package/dist/{hooks/useClipboardValueCopy.js → providers/ClipboardProvider.js} +11 -8
- package/dist/providers/ClipboardProvider.js.map +6 -0
- package/dist/providers/ConfigContext.d.ts +15 -47
- package/dist/providers/ConfigContext.d.ts.map +1 -1
- package/dist/providers/ConfigContext.js +18 -1
- package/dist/providers/ConfigContext.js.map +3 -3
- package/dist/providers/ErrorLoggerProvider.d.ts +10 -0
- package/dist/providers/ErrorLoggerProvider.d.ts.map +1 -0
- package/dist/providers/ErrorLoggerProvider.js +23 -0
- package/dist/providers/ErrorLoggerProvider.js.map +6 -0
- package/dist/providers/LoggerContext.d.ts +38 -0
- package/dist/providers/LoggerContext.d.ts.map +1 -0
- package/dist/providers/LoggerContext.js +25 -0
- package/dist/providers/LoggerContext.js.map +6 -0
- package/dist/providers/PwaUpdateProvider.d.ts +12 -0
- package/dist/providers/PwaUpdateProvider.d.ts.map +1 -0
- package/dist/providers/PwaUpdateProvider.js +56 -0
- package/dist/providers/PwaUpdateProvider.js.map +6 -0
- package/dist/providers/ServiceClientContext.d.ts.map +1 -1
- package/dist/providers/ServiceClientContext.js +1 -3
- package/dist/providers/ServiceClientContext.js.map +1 -1
- package/dist/providers/SyncStorageContext.d.ts +42 -0
- package/dist/providers/SyncStorageContext.d.ts.map +1 -0
- package/dist/providers/SyncStorageContext.js +25 -0
- package/dist/providers/SyncStorageContext.js.map +6 -0
- package/dist/providers/ThemeContext.d.ts.map +1 -1
- package/dist/providers/ThemeContext.js +1 -1
- package/dist/providers/ThemeContext.js.map +1 -1
- package/docs/disclosure.md +1 -1
- package/docs/feedback.md +4 -4
- package/docs/form-controls.md +1 -1
- package/docs/hooks.md +8 -42
- package/docs/providers.md +116 -3
- package/docs/styling.md +1 -1
- package/package.json +16 -16
- package/src/hooks/useLogger.ts +4 -4
- package/src/hooks/useSyncConfig.ts +7 -5
- package/src/index.ts +6 -3
- package/src/{hooks/useClipboardValueCopy.ts → providers/ClipboardProvider.tsx} +6 -4
- package/src/providers/ConfigContext.tsx +48 -0
- package/src/providers/ErrorLoggerProvider.tsx +31 -0
- package/src/providers/LoggerContext.tsx +46 -0
- package/src/providers/PwaUpdateProvider.tsx +68 -0
- package/src/providers/ServiceClientContext.ts +1 -3
- package/src/providers/SyncStorageContext.tsx +52 -0
- package/src/providers/ThemeContext.tsx +1 -3
- package/dist/hooks/useClipboardValueCopy.d.ts.map +0 -1
- package/dist/hooks/useClipboardValueCopy.js.map +0 -6
- package/dist/hooks/usePwaUpdate.d.ts +0 -14
- package/dist/hooks/usePwaUpdate.d.ts.map +0 -1
- package/dist/hooks/usePwaUpdate.js +0 -50
- package/dist/hooks/usePwaUpdate.js.map +0 -6
- package/dist/providers/InitializeProvider.d.ts +0 -25
- package/dist/providers/InitializeProvider.d.ts.map +0 -1
- package/dist/providers/InitializeProvider.js +0 -60
- package/dist/providers/InitializeProvider.js.map +0 -6
- package/src/hooks/usePwaUpdate.ts +0 -73
- package/src/providers/ConfigContext.ts +0 -80
- package/src/providers/InitializeProvider.tsx +0 -79
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import type { ParentComponent } from "solid-js";
|
|
2
|
-
import { onCleanup } from "solid-js";
|
|
3
|
-
import { type AppConfig, ConfigContext } from "./ConfigContext";
|
|
4
|
-
import { useClipboardValueCopy } from "../hooks/useClipboardValueCopy";
|
|
5
|
-
import { ThemeProvider } from "./ThemeContext";
|
|
6
|
-
import { NotificationProvider } from "../components/feedback/notification/NotificationProvider";
|
|
7
|
-
import { NotificationBanner } from "../components/feedback/notification/NotificationBanner";
|
|
8
|
-
import { BusyProvider } from "../components/feedback/busy/BusyProvider";
|
|
9
|
-
|
|
10
|
-
import { usePwaUpdate } from "../hooks/usePwaUpdate";
|
|
11
|
-
import { useLogger } from "../hooks/useLogger";
|
|
12
|
-
|
|
13
|
-
/** Runs PWA update detection inside NotificationProvider context */
|
|
14
|
-
function PwaUpdater() {
|
|
15
|
-
usePwaUpdate();
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/** Captures uncaught errors and unhandled rejections via useLogger */
|
|
20
|
-
function GlobalErrorLogger() {
|
|
21
|
-
const logger = useLogger();
|
|
22
|
-
|
|
23
|
-
const onError = (event: ErrorEvent) => {
|
|
24
|
-
logger.error("Uncaught error:", event.error ?? event.message);
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const onUnhandledRejection = (event: PromiseRejectionEvent) => {
|
|
28
|
-
logger.error("Unhandled rejection:", event.reason);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
window.addEventListener("error", onError);
|
|
32
|
-
window.addEventListener("unhandledrejection", onUnhandledRejection);
|
|
33
|
-
|
|
34
|
-
onCleanup(() => {
|
|
35
|
-
window.removeEventListener("error", onError);
|
|
36
|
-
window.removeEventListener("unhandledrejection", onUnhandledRejection);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* @simplysm/solid 초기화 Provider
|
|
44
|
-
*
|
|
45
|
-
* @remarks
|
|
46
|
-
* 앱 루트에서 한 번 감싸며, 다음을 초기화한다:
|
|
47
|
-
* - 앱 전역 설정 (config) Context 제공
|
|
48
|
-
* - 폼 컨트롤 value 클립보드 복사 지원
|
|
49
|
-
* - 테마 (라이트/다크/시스템)
|
|
50
|
-
* - 알림 시스템 + 배너
|
|
51
|
-
* - 전역 에러 캡처 (window.onerror, unhandledrejection)
|
|
52
|
-
* - 루트 로딩 오버레이
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```tsx
|
|
56
|
-
* <InitializeProvider config={{ clientName: "myApp" }}>
|
|
57
|
-
* <App />
|
|
58
|
-
* </InitializeProvider>
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
export const InitializeProvider: ParentComponent<{ config: AppConfig }> = (props) => {
|
|
62
|
-
// 폼 컨트롤 value 클립보드 복사
|
|
63
|
-
useClipboardValueCopy();
|
|
64
|
-
|
|
65
|
-
/* eslint-disable solid/reactivity -- config는 초기 설정값으로 변경되지 않음 */
|
|
66
|
-
return (
|
|
67
|
-
<ConfigContext.Provider value={props.config}>
|
|
68
|
-
<ThemeProvider>
|
|
69
|
-
<NotificationProvider>
|
|
70
|
-
<NotificationBanner />
|
|
71
|
-
<GlobalErrorLogger />
|
|
72
|
-
<PwaUpdater />
|
|
73
|
-
<BusyProvider variant={props.config.busyVariant}>{props.children}</BusyProvider>
|
|
74
|
-
</NotificationProvider>
|
|
75
|
-
</ThemeProvider>
|
|
76
|
-
</ConfigContext.Provider>
|
|
77
|
-
);
|
|
78
|
-
/* eslint-enable solid/reactivity */
|
|
79
|
-
};
|