@pwa-platform/react 0.1.0 → 0.2.0

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 CHANGED
@@ -1,23 +1,96 @@
1
1
  # @pwa-platform/react
2
2
 
3
- React 19 binding for PWA Platform.
3
+ React 19 binding for PWA Platform. `PwaProvider` owns one browser lifecycle facade for its subtree, `usePwa()`
4
+ exposes install/update state and actions, and an optional accessible update notice handles the confirmation flow.
5
+ Configure build artifacts separately with `@pwa-platform/vite`.
4
6
 
5
- Use `PwaProvider` and `usePwa()` in a React 19 application. Also configure `@pwa-platform/vite` for build artifacts.
7
+ ## Install
6
8
 
7
- The `0.1.0` release includes an opt-in update notice:
9
+ ```sh
10
+ npm install @pwa-platform/react @pwa-platform/vite
11
+ ```
12
+
13
+ Add `@pwa-platform/vite/virtual` to `compilerOptions.types`, then mount the provider:
14
+
15
+ ```tsx
16
+ // main.tsx
17
+ import config from "virtual:pwa-config";
18
+ import { PwaProvider } from "@pwa-platform/react";
19
+ import { createRoot } from "react-dom/client";
20
+ import { App } from "./App";
21
+
22
+ createRoot(document.getElementById("root")!).render(
23
+ <PwaProvider config={config} updateCheck={{ intervalMs: 30 * 60_000 }}>
24
+ <App />
25
+ </PwaProvider>,
26
+ );
27
+ ```
28
+
29
+ Register from a browser effect, normally only in production:
30
+
31
+ ```tsx
32
+ import { useEffect } from "react";
33
+ import { usePwa } from "@pwa-platform/react";
34
+
35
+ export function PwaActions() {
36
+ const pwa = usePwa();
37
+
38
+ useEffect(() => {
39
+ if (import.meta.env.PROD) void pwa.register();
40
+ }, [pwa.register]);
41
+
42
+ return (
43
+ <>
44
+ {pwa.state.installEligible && (
45
+ <button onClick={() => void pwa.promptInstall()}>安装应用</button>
46
+ )}
47
+ {pwa.state.updateWaiting && (
48
+ <button onClick={() => void pwa.applyUpdate()}>更新应用</button>
49
+ )}
50
+ </>
51
+ );
52
+ }
53
+ ```
54
+
55
+ `usePwa()` returns `registered`, `installEligible`, `installed` and `updateWaiting` in `state`, plus `register()`,
56
+ `promptInstall()`, `checkForUpdate()`, `applyUpdate()` and `logout()`. It throws outside a provider. Server rendering
57
+ receives the initial all-false state; methods reject until called after hydration.
58
+
59
+ ## Optional update notice
8
60
 
9
61
  ```tsx
10
62
  import { PwaUpdateNotice } from "@pwa-platform/react/ui";
11
63
  import "@pwa-platform/react/update-notice.css";
12
64
 
13
- <PwaProvider config={config}>
14
- <App />
15
- <PwaUpdateNotice />
16
- </PwaProvider>
65
+ export function App() {
66
+ return (
67
+ <>
68
+ <YourRoutes />
69
+ <PwaUpdateNotice
70
+ position="bottom-right"
71
+ messages={{ readyTitle: "发现新版本", update: "立即更新", later: "稍后" }}
72
+ colors={{ primaryButtonBackground: "#006e52", primaryButtonText: "#fff" }}
73
+ reloadPage={() => location.reload()}
74
+ />
75
+ </>
76
+ );
77
+ }
17
78
  ```
18
79
 
19
- The default is a non-modal bottom-right card. `position` also accepts `bottom-center`, `top-right`, and `top-center`; `messages` overrides Chinese copy. Use `colors={{ primaryButtonBackground: "#006e52", primaryButtonText: "#ffffff" }}` for simple brand colors; `surface`, `text`, `mutedText`, and `border` are also available. Inherited `--pwa-update-*` CSS variables control the remaining appearance; `colors` takes precedence for values it sets. `reloadPage` can replace the final reload action when the application must protect unsaved work. Only a click on “刷新页面” calls it. The component does not register the worker; the application still calls `register()` and may configure `updateCheck` for long-lived pages.
80
+ The notice is opt-in and non-modal. Positions are `bottom-right`, `bottom-center`, `top-right` and `top-center`.
81
+ `locale` selects the built-in copy (`"zh-CN"`, the default, or `"en"`); `messages` overrides individual keys on top of it; `colors` controls surface, text, muted text, border and primary
82
+ button colors. CSS variables prefixed with `--pwa-update-` provide deeper theming. `reloadPage` runs only after
83
+ worker takeover and an explicit click, allowing the host to protect unsaved work.
84
+
85
+ ## Lifecycle boundaries
20
86
 
21
- The `0.1.0` release provides online use, installation integration, static precaching, a safe offline fallback, and controlled updates. It does not enable runtime business API caching, private data caching, automatic write replay, or Push for applications. Production deployment requires the application and infrastructure checks described in the PWA Platform release runbook.
87
+ - Do not pass both `client` and `updateCheck`; an injected facade is already configured and the provider throws.
88
+ - The provider creates/disposes the facade in an effect and remains safe under React Strict Mode.
89
+ - `applyUpdate()` changes the controlling worker but never reloads the page unless the host or notice does it.
90
+ - `logout()` returns the cleanup result but does not reset the binding's `registered` snapshot. Recreate/reload the
91
+ provider if its UI must reflect an unregistered worker immediately.
92
+ - The binding intentionally does not expose raw event subscription. Use `@pwa-platform/client-runtime` directly
93
+ only when lifecycle telemetry such as `served-from-cache` is required.
22
94
 
23
- License: MIT.
95
+ See the [React quick start](https://github.com/haigeerlab/pwa-platform/blob/main/website/start/react.md) and
96
+ [update prompt guide](https://github.com/haigeerlab/pwa-platform/blob/main/docs/guides/update-prompt.md).
package/dist/ui.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { type ReactElement } from "react";
2
2
  export type PwaUpdateNoticePosition = "bottom-right" | "bottom-center" | "top-right" | "top-center";
3
+ /** Built-in copy is available for these locales; anything else needs a full `messages` override. */
4
+ export type PwaUpdateNoticeLocale = "zh-CN" | "en";
3
5
  export type PwaUpdateNoticeMessages = {
4
6
  readonly readyTitle: string;
5
7
  readonly readyBody: string;
@@ -16,6 +18,8 @@ export type PwaUpdateNoticeMessages = {
16
18
  };
17
19
  export type PwaUpdateNoticeProps = {
18
20
  readonly position?: PwaUpdateNoticePosition;
21
+ /** Selects the built-in message table `messages` is layered on top of. Defaults to `"zh-CN"`. */
22
+ readonly locale?: PwaUpdateNoticeLocale;
19
23
  readonly messages?: Partial<PwaUpdateNoticeMessages>;
20
24
  readonly colors?: Partial<PwaUpdateNoticeColors>;
21
25
  readonly reloadPage?: () => void;
@@ -28,6 +32,9 @@ export type PwaUpdateNoticeColors = {
28
32
  readonly primaryButtonBackground: string;
29
33
  readonly primaryButtonText: string;
30
34
  };
35
+ /** The single source of truth for built-in copy, keyed by locale (ADR-0039, "增补:内置语言选择"). Exported so the
36
+ * public examples can reference it instead of keeping their own copy. */
37
+ export declare const PWA_UPDATE_NOTICE_MESSAGES: Readonly<Record<PwaUpdateNoticeLocale, PwaUpdateNoticeMessages>>;
31
38
  /** Opt-in, non-modal update notice. Import `@pwa-platform/react/update-notice.css` for its default appearance. */
32
- export declare function PwaUpdateNotice({ position, messages: overrides, colors, reloadPage, }: PwaUpdateNoticeProps): ReactElement | null;
39
+ export declare function PwaUpdateNotice({ position, locale, messages: overrides, colors, reloadPage, }: PwaUpdateNoticeProps): ReactElement | null;
33
40
  //# sourceMappingURL=ui.d.ts.map
package/dist/ui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1G,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;AAEpG,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC,CAAC;AAsBF,kHAAkH;AAClH,wBAAgB,eAAe,CAAC,EAC9B,QAAyB,EACzB,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,UAAU,GACX,EAAE,oBAAoB,GAAG,YAAY,GAAG,IAAI,CA6H5C"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1G,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;AAEpG,oGAAoG;AACpG,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,IAAI,CAAC;AAEnD,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAC5C,iGAAiG;IACjG,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC,CAAC;AAiCF;yEACyE;AACzE,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAGvG,CAAC;AAOF,kHAAkH;AAClH,wBAAgB,eAAe,CAAC,EAC9B,QAAyB,EACzB,MAAgB,EAChB,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,UAAU,GACX,EAAE,oBAAoB,GAAG,YAAY,GAAG,IAAI,CA6H5C"}
package/dist/ui.js CHANGED
@@ -14,10 +14,31 @@ const DEFAULT_MESSAGES = {
14
14
  errorBody: "请检查连接后重试。",
15
15
  retry: "重试",
16
16
  };
17
+ /** English copy, verified on real Android and iPhone devices via the public examples. */
18
+ const EN_MESSAGES = {
19
+ readyTitle: "A new version is available",
20
+ readyBody: "The new offline resources are ready. Update when it suits you.",
21
+ update: "Update",
22
+ later: "Later",
23
+ updatingTitle: "Updating",
24
+ updatingBody: "Switching offline resources. Please wait.",
25
+ reloadTitle: "Update complete",
26
+ reloadBody: "Reload this page when you're ready to use the latest version.",
27
+ reload: "Reload page",
28
+ errorTitle: "Update incomplete",
29
+ errorBody: "Check your connection and try again.",
30
+ retry: "Retry",
31
+ };
32
+ /** The single source of truth for built-in copy, keyed by locale (ADR-0039, "增补:内置语言选择"). Exported so the
33
+ * public examples can reference it instead of keeping their own copy. */
34
+ export const PWA_UPDATE_NOTICE_MESSAGES = {
35
+ "zh-CN": DEFAULT_MESSAGES,
36
+ en: EN_MESSAGES,
37
+ };
17
38
  const REMIND_AFTER_MS = 30 * 60_000;
18
39
  const STABLE_WAITING_MS = 100;
19
40
  /** Opt-in, non-modal update notice. Import `@pwa-platform/react/update-notice.css` for its default appearance. */
20
- export function PwaUpdateNotice({ position = "bottom-right", messages: overrides, colors, reloadPage, }) {
41
+ export function PwaUpdateNotice({ position = "bottom-right", locale = "zh-CN", messages: overrides, colors, reloadPage, }) {
21
42
  const pwa = usePwa();
22
43
  const waiting = pwa.state.updateWaiting;
23
44
  const [phase, setPhase] = useState("ready");
@@ -111,7 +132,7 @@ export function PwaUpdateNotice({ position = "bottom-right", messages: overrides
111
132
  const mode = phase === "ready" ? (waiting && stableWaiting && !dismissed ? "ready" : null) : phase;
112
133
  if (mode === null)
113
134
  return null;
114
- const messages = { ...DEFAULT_MESSAGES, ...overrides };
135
+ const messages = { ...PWA_UPDATE_NOTICE_MESSAGES[locale], ...overrides };
115
136
  const title = messages[`${mode}Title`];
116
137
  const body = messages[`${mode}Body`];
117
138
  const buttons = [];
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pwa-platform/react",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "React 19 binding for PWA Platform.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -26,12 +26,12 @@
26
26
  "react": "^19.2.0"
27
27
  },
28
28
  "dependencies": {
29
- "@pwa-platform/client-runtime": "0.1.0"
29
+ "@pwa-platform/client-runtime": "0.2.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/react": "19.3.0",
33
33
  "react": "19.3.0",
34
- "@pwa-platform/vue": "0.1.0"
34
+ "@pwa-platform/vue": "0.2.0"
35
35
  },
36
36
  "engines": {
37
37
  "node": ">=22.0.0"