@fonderie/react-courier-admin 0.1.0 → 0.3.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 +4 -4
- package/dist/index.cjs +58 -84
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -16
- package/dist/index.d.ts +4 -16
- package/dist/index.js +55 -79
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
React hooks for the Fonderie courier admin API — `useTemplates`,
|
|
4
4
|
`useTemplate`, `useSaveTemplate`, `useDeleteTemplate`, and
|
|
5
5
|
`useTemplateRevisions` (list + rollback). Thin bindings over
|
|
6
|
-
[`@fonderie/client`](https://github.com/
|
|
6
|
+
[`@fonderie/client`](https://github.com/fonderiejs/sdk/tree/main/packages/client)'s
|
|
7
7
|
`CourierAdminClient`: loading/error state and the request itself, nothing
|
|
8
8
|
else. Bring your own UI.
|
|
9
9
|
|
|
@@ -48,14 +48,14 @@ session — the same model `@fonderie/config`'s admin surface and the
|
|
|
48
48
|
`AuthClient`/`BillingClient`/`WorkspacesClient`.
|
|
49
49
|
|
|
50
50
|
Want pre-built screens instead of wiring your own editor?
|
|
51
|
-
See [`@fonderie/react-courier-admin-screens`](https://github.com/
|
|
51
|
+
See [`@fonderie/react-courier-admin-screens`](https://github.com/fonderiejs/sdk/tree/main/packages/react-courier-admin-screens).
|
|
52
52
|
|
|
53
53
|
## Why this exists
|
|
54
54
|
|
|
55
55
|
You've shipped this plumbing before — auth, teams, billing, messaging —
|
|
56
56
|
and the next project will ask for it again. Fonderie packages it once:
|
|
57
57
|
plain TypeScript modules for
|
|
58
|
-
[`@fonderie/core`](https://github.com/
|
|
58
|
+
[`@fonderie/core`](https://github.com/fonderiejs/sdk/tree/main/packages/core),
|
|
59
59
|
PostgreSQL-backed, self-hosted, MIT. No external control plane, no
|
|
60
60
|
per-seat anything. Register the modules you need; skip the ones you don't.
|
|
61
61
|
|
|
@@ -64,7 +64,7 @@ state management around `@fonderie/client`, nothing more. No business logic
|
|
|
64
64
|
lives here; it lives in `@fonderie/courier` on the server.
|
|
65
65
|
|
|
66
66
|
Browse the whole set at
|
|
67
|
-
[
|
|
67
|
+
[fonderiejs/sdk](https://github.com/fonderiejs/sdk) · follow
|
|
68
68
|
[@fonderiejs](https://x.com/fonderiejs)
|
|
69
69
|
|
|
70
70
|
## License
|
package/dist/index.cjs
CHANGED
|
@@ -20,115 +20,62 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
|
-
CourierAdminClient: () =>
|
|
24
|
-
FonderieApiError: () =>
|
|
25
|
-
useDeleteTemplate: () => useDeleteTemplate,
|
|
26
|
-
useSaveTemplate: () => useSaveTemplate,
|
|
23
|
+
CourierAdminClient: () => import_client4.CourierAdminClient,
|
|
24
|
+
FonderieApiError: () => import_client4.FonderieApiError,
|
|
27
25
|
useTemplate: () => useTemplate,
|
|
28
26
|
useTemplateRevisions: () => useTemplateRevisions,
|
|
29
27
|
useTemplates: () => useTemplates
|
|
30
28
|
});
|
|
31
29
|
module.exports = __toCommonJS(index_exports);
|
|
32
|
-
var
|
|
30
|
+
var import_client4 = require("@fonderie/client");
|
|
33
31
|
|
|
34
|
-
// src/hooks/
|
|
32
|
+
// src/hooks/useTemplate.ts
|
|
35
33
|
var import_client = require("@fonderie/client");
|
|
36
34
|
var import_react = require("react");
|
|
37
|
-
function useDeleteTemplate(client) {
|
|
38
|
-
const [isLoading, setIsLoading] = (0, import_react.useState)(false);
|
|
39
|
-
const [error, setError] = (0, import_react.useState)(null);
|
|
40
|
-
const deleteTemplate = (0, import_react.useCallback)(
|
|
41
|
-
async (type, locale) => {
|
|
42
|
-
setIsLoading(true);
|
|
43
|
-
setError(null);
|
|
44
|
-
try {
|
|
45
|
-
await client.deleteTemplate(type, locale);
|
|
46
|
-
} catch (err) {
|
|
47
|
-
const apiError = err instanceof import_client.FonderieApiError ? err : new import_client.FonderieApiError("unknown", String(err), 0);
|
|
48
|
-
setError(apiError);
|
|
49
|
-
throw apiError;
|
|
50
|
-
} finally {
|
|
51
|
-
setIsLoading(false);
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
[client]
|
|
55
|
-
);
|
|
56
|
-
return { deleteTemplate, isLoading, error };
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// src/hooks/useSaveTemplate.ts
|
|
60
|
-
var import_client2 = require("@fonderie/client");
|
|
61
|
-
var import_react2 = require("react");
|
|
62
|
-
function useSaveTemplate(client) {
|
|
63
|
-
const [isLoading, setIsLoading] = (0, import_react2.useState)(false);
|
|
64
|
-
const [error, setError] = (0, import_react2.useState)(null);
|
|
65
|
-
const saveTemplate = (0, import_react2.useCallback)(
|
|
66
|
-
async (type, input, locale) => {
|
|
67
|
-
setIsLoading(true);
|
|
68
|
-
setError(null);
|
|
69
|
-
try {
|
|
70
|
-
const { result } = await client.setTemplate(type, input, locale);
|
|
71
|
-
return result;
|
|
72
|
-
} catch (err) {
|
|
73
|
-
const apiError = err instanceof import_client2.FonderieApiError ? err : new import_client2.FonderieApiError("unknown", String(err), 0);
|
|
74
|
-
setError(apiError);
|
|
75
|
-
throw apiError;
|
|
76
|
-
} finally {
|
|
77
|
-
setIsLoading(false);
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
[client]
|
|
81
|
-
);
|
|
82
|
-
return { saveTemplate, isLoading, error };
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// src/hooks/useTemplate.ts
|
|
86
|
-
var import_client3 = require("@fonderie/client");
|
|
87
|
-
var import_react3 = require("react");
|
|
88
35
|
function useTemplate(client, type, locale) {
|
|
89
|
-
const [template, setTemplate] = (0,
|
|
90
|
-
const [isLoading, setIsLoading] = (0,
|
|
91
|
-
const [error, setError] = (0,
|
|
92
|
-
const refresh = (0,
|
|
36
|
+
const [template, setTemplate] = (0, import_react.useState)(null);
|
|
37
|
+
const [isLoading, setIsLoading] = (0, import_react.useState)(true);
|
|
38
|
+
const [error, setError] = (0, import_react.useState)(null);
|
|
39
|
+
const refresh = (0, import_react.useCallback)(async () => {
|
|
93
40
|
setIsLoading(true);
|
|
94
41
|
setError(null);
|
|
95
42
|
try {
|
|
96
43
|
const { result } = await client.getTemplate(type, locale);
|
|
97
44
|
setTemplate(result);
|
|
98
45
|
} catch (err) {
|
|
99
|
-
const apiError = err instanceof
|
|
46
|
+
const apiError = err instanceof import_client.FonderieApiError ? err : new import_client.FonderieApiError("unknown", String(err), 0);
|
|
100
47
|
setError(apiError);
|
|
101
48
|
} finally {
|
|
102
49
|
setIsLoading(false);
|
|
103
50
|
}
|
|
104
51
|
}, [client, type, locale]);
|
|
105
|
-
(0,
|
|
52
|
+
(0, import_react.useEffect)(() => {
|
|
106
53
|
void refresh();
|
|
107
54
|
}, [refresh]);
|
|
108
55
|
return { template, isLoading, error, refresh };
|
|
109
56
|
}
|
|
110
57
|
|
|
111
58
|
// src/hooks/useTemplateRevisions.ts
|
|
112
|
-
var
|
|
113
|
-
var
|
|
59
|
+
var import_client2 = require("@fonderie/client");
|
|
60
|
+
var import_react2 = require("react");
|
|
114
61
|
function useTemplateRevisions(client, type, locale) {
|
|
115
|
-
const [revisions, setRevisions] = (0,
|
|
116
|
-
const [isLoading, setIsLoading] = (0,
|
|
117
|
-
const [error, setError] = (0,
|
|
118
|
-
const refresh = (0,
|
|
62
|
+
const [revisions, setRevisions] = (0, import_react2.useState)([]);
|
|
63
|
+
const [isLoading, setIsLoading] = (0, import_react2.useState)(true);
|
|
64
|
+
const [error, setError] = (0, import_react2.useState)(null);
|
|
65
|
+
const refresh = (0, import_react2.useCallback)(async () => {
|
|
119
66
|
setIsLoading(true);
|
|
120
67
|
setError(null);
|
|
121
68
|
try {
|
|
122
69
|
const { result } = await client.listRevisions(type, locale);
|
|
123
70
|
setRevisions(result);
|
|
124
71
|
} catch (err) {
|
|
125
|
-
const apiError = err instanceof
|
|
72
|
+
const apiError = err instanceof import_client2.FonderieApiError ? err : new import_client2.FonderieApiError("unknown", String(err), 0);
|
|
126
73
|
setError(apiError);
|
|
127
74
|
} finally {
|
|
128
75
|
setIsLoading(false);
|
|
129
76
|
}
|
|
130
77
|
}, [client, type, locale]);
|
|
131
|
-
const rollback = (0,
|
|
78
|
+
const rollback = (0, import_react2.useCallback)(
|
|
132
79
|
async (toVersion) => {
|
|
133
80
|
setError(null);
|
|
134
81
|
try {
|
|
@@ -136,50 +83,77 @@ function useTemplateRevisions(client, type, locale) {
|
|
|
136
83
|
await refresh();
|
|
137
84
|
return result;
|
|
138
85
|
} catch (err) {
|
|
139
|
-
const apiError = err instanceof
|
|
86
|
+
const apiError = err instanceof import_client2.FonderieApiError ? err : new import_client2.FonderieApiError("unknown", String(err), 0);
|
|
140
87
|
setError(apiError);
|
|
141
88
|
throw apiError;
|
|
142
89
|
}
|
|
143
90
|
},
|
|
144
91
|
[client, type, locale, refresh]
|
|
145
92
|
);
|
|
146
|
-
(0,
|
|
93
|
+
(0, import_react2.useEffect)(() => {
|
|
147
94
|
void refresh();
|
|
148
95
|
}, [refresh]);
|
|
149
96
|
return { revisions, isLoading, error, refresh, rollback };
|
|
150
97
|
}
|
|
151
98
|
|
|
152
99
|
// src/hooks/useTemplates.ts
|
|
153
|
-
var
|
|
154
|
-
var
|
|
100
|
+
var import_client3 = require("@fonderie/client");
|
|
101
|
+
var import_react3 = require("react");
|
|
155
102
|
function useTemplates(client) {
|
|
156
|
-
const [templates, setTemplates] = (0,
|
|
157
|
-
const [isLoading, setIsLoading] = (0,
|
|
158
|
-
const [error, setError] = (0,
|
|
159
|
-
const refresh = (0,
|
|
103
|
+
const [templates, setTemplates] = (0, import_react3.useState)([]);
|
|
104
|
+
const [isLoading, setIsLoading] = (0, import_react3.useState)(true);
|
|
105
|
+
const [error, setError] = (0, import_react3.useState)(null);
|
|
106
|
+
const refresh = (0, import_react3.useCallback)(async () => {
|
|
160
107
|
setIsLoading(true);
|
|
161
108
|
setError(null);
|
|
162
109
|
try {
|
|
163
110
|
const { result } = await client.listTemplates();
|
|
164
111
|
setTemplates(result);
|
|
165
112
|
} catch (err) {
|
|
166
|
-
const apiError = err instanceof
|
|
113
|
+
const apiError = err instanceof import_client3.FonderieApiError ? err : new import_client3.FonderieApiError("unknown", String(err), 0);
|
|
167
114
|
setError(apiError);
|
|
168
115
|
} finally {
|
|
169
116
|
setIsLoading(false);
|
|
170
117
|
}
|
|
171
118
|
}, [client]);
|
|
172
|
-
(0,
|
|
119
|
+
const saveTemplate = (0, import_react3.useCallback)(
|
|
120
|
+
async (type, input, locale) => {
|
|
121
|
+
setError(null);
|
|
122
|
+
try {
|
|
123
|
+
const { result } = await client.setTemplate(type, input, locale);
|
|
124
|
+
await refresh();
|
|
125
|
+
return result;
|
|
126
|
+
} catch (err) {
|
|
127
|
+
const apiError = err instanceof import_client3.FonderieApiError ? err : new import_client3.FonderieApiError("unknown", String(err), 0);
|
|
128
|
+
setError(apiError);
|
|
129
|
+
throw apiError;
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
[client, refresh]
|
|
133
|
+
);
|
|
134
|
+
const removeTemplate = (0, import_react3.useCallback)(
|
|
135
|
+
async (type, locale) => {
|
|
136
|
+
setError(null);
|
|
137
|
+
try {
|
|
138
|
+
await client.deleteTemplate(type, locale);
|
|
139
|
+
await refresh();
|
|
140
|
+
} catch (err) {
|
|
141
|
+
const apiError = err instanceof import_client3.FonderieApiError ? err : new import_client3.FonderieApiError("unknown", String(err), 0);
|
|
142
|
+
setError(apiError);
|
|
143
|
+
throw apiError;
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
[client, refresh]
|
|
147
|
+
);
|
|
148
|
+
(0, import_react3.useEffect)(() => {
|
|
173
149
|
void refresh();
|
|
174
150
|
}, [refresh]);
|
|
175
|
-
return { templates, isLoading, error, refresh };
|
|
151
|
+
return { templates, isLoading, error, refresh, saveTemplate, removeTemplate };
|
|
176
152
|
}
|
|
177
153
|
// Annotate the CommonJS export names for ESM import in node:
|
|
178
154
|
0 && (module.exports = {
|
|
179
155
|
CourierAdminClient,
|
|
180
156
|
FonderieApiError,
|
|
181
|
-
useDeleteTemplate,
|
|
182
|
-
useSaveTemplate,
|
|
183
157
|
useTemplate,
|
|
184
158
|
useTemplateRevisions,
|
|
185
159
|
useTemplates
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/hooks/useDeleteTemplate.ts","../src/hooks/useSaveTemplate.ts","../src/hooks/useTemplate.ts","../src/hooks/useTemplateRevisions.ts","../src/hooks/useTemplates.ts"],"sourcesContent":["export type {\n\tICourierAdminClientOptions,\n\tIRollbackTemplateInput,\n\tISetTemplateInput,\n\tITemplateEntry,\n\tITemplateRevision,\n} from '@fonderie/client';\nexport { CourierAdminClient, FonderieApiError } from '@fonderie/client';\nexport type {\n\tIUseDeleteTemplateReturn,\n\tIUseSaveTemplateReturn,\n\tIUseTemplateReturn,\n\tIUseTemplateRevisionsReturn,\n\tIUseTemplatesReturn,\n} from './hooks';\nexport {\n\tuseDeleteTemplate,\n\tuseSaveTemplate,\n\tuseTemplate,\n\tuseTemplateRevisions,\n\tuseTemplates,\n} from './hooks';\n","import type { CourierAdminClient } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useState } from 'react';\n\nexport interface IUseDeleteTemplateReturn {\n\tdeleteTemplate: (type: string, locale?: string | null) => Promise<void>;\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n}\n\nexport function useDeleteTemplate(client: CourierAdminClient): IUseDeleteTemplateReturn {\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst deleteTemplate = useCallback(\n\t\tasync (type: string, locale?: string | null) => {\n\t\t\tsetIsLoading(true);\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tawait client.deleteTemplate(type, locale);\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t},\n\t\t[client],\n\t);\n\n\treturn { deleteTemplate, isLoading, error };\n}\n","import type { CourierAdminClient, ISetTemplateInput, ITemplateEntry } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useState } from 'react';\n\nexport interface IUseSaveTemplateReturn {\n\tsaveTemplate: (\n\t\ttype: string,\n\t\tinput: ISetTemplateInput,\n\t\tlocale?: string | null,\n\t) => Promise<ITemplateEntry>;\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n}\n\nexport function useSaveTemplate(client: CourierAdminClient): IUseSaveTemplateReturn {\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst saveTemplate = useCallback(\n\t\tasync (type: string, input: ISetTemplateInput, locale?: string | null) => {\n\t\t\tsetIsLoading(true);\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tconst { result } = await client.setTemplate(type, input, locale);\n\t\t\t\treturn result;\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t},\n\t\t[client],\n\t);\n\n\treturn { saveTemplate, isLoading, error };\n}\n","import type { CourierAdminClient, ITemplateEntry } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplateReturn {\n\ttemplate: ITemplateEntry | null;\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n}\n\nexport function useTemplate(\n\tclient: CourierAdminClient,\n\ttype: string,\n\tlocale?: string | null,\n): IUseTemplateReturn {\n\tconst [template, setTemplate] = useState<ITemplateEntry | null>(null);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.getTemplate(type, locale);\n\t\t\tsetTemplate(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client, type, locale]);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { template, isLoading, error, refresh };\n}\n","import type { CourierAdminClient, ITemplateEntry, ITemplateRevision } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplateRevisionsReturn {\n\trevisions: ITemplateRevision[];\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n\trollback: (toVersion: number) => Promise<ITemplateEntry>;\n}\n\nexport function useTemplateRevisions(\n\tclient: CourierAdminClient,\n\ttype: string,\n\tlocale?: string | null,\n): IUseTemplateRevisionsReturn {\n\tconst [revisions, setRevisions] = useState<ITemplateRevision[]>([]);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.listRevisions(type, locale);\n\t\t\tsetRevisions(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client, type, locale]);\n\n\tconst rollback = useCallback(\n\t\tasync (toVersion: number) => {\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tconst { result } = await client.rollback(type, { toVersion }, locale);\n\t\t\t\tawait refresh();\n\t\t\t\treturn result;\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t}\n\t\t},\n\t\t[client, type, locale, refresh],\n\t);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { revisions, isLoading, error, refresh, rollback };\n}\n","import type { CourierAdminClient, ITemplateEntry } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplatesReturn {\n\ttemplates: ITemplateEntry[];\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n}\n\nexport function useTemplates(client: CourierAdminClient): IUseTemplatesReturn {\n\tconst [templates, setTemplates] = useState<ITemplateEntry[]>([]);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.listTemplates();\n\t\t\tsetTemplates(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client]);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { templates, isLoading, error, refresh };\n}\n"],"mappings":"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","names":["import_client","import_client","import_react","import_client","import_react","import_client","import_react","import_client","import_react"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/hooks/useTemplate.ts","../src/hooks/useTemplateRevisions.ts","../src/hooks/useTemplates.ts"],"sourcesContent":["export type {\n\tICourierAdminClientOptions,\n\tIRollbackTemplateInput,\n\tISetTemplateInput,\n\tITemplateEntry,\n\tITemplateRevision,\n} from '@fonderie/client';\nexport { CourierAdminClient, FonderieApiError } from '@fonderie/client';\nexport type {\n\tIUseTemplateReturn,\n\tIUseTemplateRevisionsReturn,\n\tIUseTemplatesReturn,\n} from './hooks';\nexport {\n\tuseTemplate,\n\tuseTemplateRevisions,\n\tuseTemplates,\n} from './hooks';\n","import type { CourierAdminClient, ITemplateEntry } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplateReturn {\n\ttemplate: ITemplateEntry | null;\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n}\n\nexport function useTemplate(\n\tclient: CourierAdminClient,\n\ttype: string,\n\tlocale?: string | null,\n): IUseTemplateReturn {\n\tconst [template, setTemplate] = useState<ITemplateEntry | null>(null);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.getTemplate(type, locale);\n\t\t\tsetTemplate(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client, type, locale]);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { template, isLoading, error, refresh };\n}\n","import type { CourierAdminClient, ITemplateEntry, ITemplateRevision } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplateRevisionsReturn {\n\trevisions: ITemplateRevision[];\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n\trollback: (toVersion: number) => Promise<ITemplateEntry>;\n}\n\nexport function useTemplateRevisions(\n\tclient: CourierAdminClient,\n\ttype: string,\n\tlocale?: string | null,\n): IUseTemplateRevisionsReturn {\n\tconst [revisions, setRevisions] = useState<ITemplateRevision[]>([]);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.listRevisions(type, locale);\n\t\t\tsetRevisions(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client, type, locale]);\n\n\tconst rollback = useCallback(\n\t\tasync (toVersion: number) => {\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tconst { result } = await client.rollback(type, { toVersion }, locale);\n\t\t\t\tawait refresh();\n\t\t\t\treturn result;\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t}\n\t\t},\n\t\t[client, type, locale, refresh],\n\t);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { revisions, isLoading, error, refresh, rollback };\n}\n","import type { CourierAdminClient, ISetTemplateInput, ITemplateEntry } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplatesReturn {\n\ttemplates: ITemplateEntry[];\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n\tsaveTemplate: (\n\t\ttype: string,\n\t\tinput: ISetTemplateInput,\n\t\tlocale?: string | null,\n\t) => Promise<ITemplateEntry>;\n\tremoveTemplate: (type: string, locale?: string | null) => Promise<void>;\n}\n\nexport function useTemplates(client: CourierAdminClient): IUseTemplatesReturn {\n\tconst [templates, setTemplates] = useState<ITemplateEntry[]>([]);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.listTemplates();\n\t\t\tsetTemplates(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client]);\n\n\tconst saveTemplate = useCallback(\n\t\tasync (type: string, input: ISetTemplateInput, locale?: string | null) => {\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tconst { result } = await client.setTemplate(type, input, locale);\n\t\t\t\tawait refresh();\n\t\t\t\treturn result;\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t}\n\t\t},\n\t\t[client, refresh],\n\t);\n\n\tconst removeTemplate = useCallback(\n\t\tasync (type: string, locale?: string | null) => {\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tawait client.deleteTemplate(type, locale);\n\t\t\t\tawait refresh();\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t}\n\t\t},\n\t\t[client, refresh],\n\t);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { templates, isLoading, error, refresh, saveTemplate, removeTemplate };\n}\n"],"mappings":"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","names":["import_client","import_client","import_react","import_client","import_react"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
import { FonderieApiError, CourierAdminClient,
|
|
1
|
+
import { ITemplateEntry, FonderieApiError, CourierAdminClient, ITemplateRevision, ISetTemplateInput } from '@fonderie/client';
|
|
2
2
|
export { CourierAdminClient, FonderieApiError, ICourierAdminClientOptions, IRollbackTemplateInput, ISetTemplateInput, ITemplateEntry, ITemplateRevision } from '@fonderie/client';
|
|
3
3
|
|
|
4
|
-
interface IUseDeleteTemplateReturn {
|
|
5
|
-
deleteTemplate: (type: string, locale?: string | null) => Promise<void>;
|
|
6
|
-
isLoading: boolean;
|
|
7
|
-
error: FonderieApiError | null;
|
|
8
|
-
}
|
|
9
|
-
declare function useDeleteTemplate(client: CourierAdminClient): IUseDeleteTemplateReturn;
|
|
10
|
-
|
|
11
|
-
interface IUseSaveTemplateReturn {
|
|
12
|
-
saveTemplate: (type: string, input: ISetTemplateInput, locale?: string | null) => Promise<ITemplateEntry>;
|
|
13
|
-
isLoading: boolean;
|
|
14
|
-
error: FonderieApiError | null;
|
|
15
|
-
}
|
|
16
|
-
declare function useSaveTemplate(client: CourierAdminClient): IUseSaveTemplateReturn;
|
|
17
|
-
|
|
18
4
|
interface IUseTemplateReturn {
|
|
19
5
|
template: ITemplateEntry | null;
|
|
20
6
|
isLoading: boolean;
|
|
@@ -37,7 +23,9 @@ interface IUseTemplatesReturn {
|
|
|
37
23
|
isLoading: boolean;
|
|
38
24
|
error: FonderieApiError | null;
|
|
39
25
|
refresh: () => Promise<void>;
|
|
26
|
+
saveTemplate: (type: string, input: ISetTemplateInput, locale?: string | null) => Promise<ITemplateEntry>;
|
|
27
|
+
removeTemplate: (type: string, locale?: string | null) => Promise<void>;
|
|
40
28
|
}
|
|
41
29
|
declare function useTemplates(client: CourierAdminClient): IUseTemplatesReturn;
|
|
42
30
|
|
|
43
|
-
export { type
|
|
31
|
+
export { type IUseTemplateReturn, type IUseTemplateRevisionsReturn, type IUseTemplatesReturn, useTemplate, useTemplateRevisions, useTemplates };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
import { FonderieApiError, CourierAdminClient,
|
|
1
|
+
import { ITemplateEntry, FonderieApiError, CourierAdminClient, ITemplateRevision, ISetTemplateInput } from '@fonderie/client';
|
|
2
2
|
export { CourierAdminClient, FonderieApiError, ICourierAdminClientOptions, IRollbackTemplateInput, ISetTemplateInput, ITemplateEntry, ITemplateRevision } from '@fonderie/client';
|
|
3
3
|
|
|
4
|
-
interface IUseDeleteTemplateReturn {
|
|
5
|
-
deleteTemplate: (type: string, locale?: string | null) => Promise<void>;
|
|
6
|
-
isLoading: boolean;
|
|
7
|
-
error: FonderieApiError | null;
|
|
8
|
-
}
|
|
9
|
-
declare function useDeleteTemplate(client: CourierAdminClient): IUseDeleteTemplateReturn;
|
|
10
|
-
|
|
11
|
-
interface IUseSaveTemplateReturn {
|
|
12
|
-
saveTemplate: (type: string, input: ISetTemplateInput, locale?: string | null) => Promise<ITemplateEntry>;
|
|
13
|
-
isLoading: boolean;
|
|
14
|
-
error: FonderieApiError | null;
|
|
15
|
-
}
|
|
16
|
-
declare function useSaveTemplate(client: CourierAdminClient): IUseSaveTemplateReturn;
|
|
17
|
-
|
|
18
4
|
interface IUseTemplateReturn {
|
|
19
5
|
template: ITemplateEntry | null;
|
|
20
6
|
isLoading: boolean;
|
|
@@ -37,7 +23,9 @@ interface IUseTemplatesReturn {
|
|
|
37
23
|
isLoading: boolean;
|
|
38
24
|
error: FonderieApiError | null;
|
|
39
25
|
refresh: () => Promise<void>;
|
|
26
|
+
saveTemplate: (type: string, input: ISetTemplateInput, locale?: string | null) => Promise<ITemplateEntry>;
|
|
27
|
+
removeTemplate: (type: string, locale?: string | null) => Promise<void>;
|
|
40
28
|
}
|
|
41
29
|
declare function useTemplates(client: CourierAdminClient): IUseTemplatesReturn;
|
|
42
30
|
|
|
43
|
-
export { type
|
|
31
|
+
export { type IUseTemplateReturn, type IUseTemplateRevisionsReturn, type IUseTemplatesReturn, useTemplate, useTemplateRevisions, useTemplates };
|
package/dist/index.js
CHANGED
|
@@ -1,72 +1,21 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
import { CourierAdminClient, FonderieApiError as
|
|
3
|
-
|
|
4
|
-
// src/hooks/useDeleteTemplate.ts
|
|
5
|
-
import { FonderieApiError } from "@fonderie/client";
|
|
6
|
-
import { useCallback, useState } from "react";
|
|
7
|
-
function useDeleteTemplate(client) {
|
|
8
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
9
|
-
const [error, setError] = useState(null);
|
|
10
|
-
const deleteTemplate = useCallback(
|
|
11
|
-
async (type, locale) => {
|
|
12
|
-
setIsLoading(true);
|
|
13
|
-
setError(null);
|
|
14
|
-
try {
|
|
15
|
-
await client.deleteTemplate(type, locale);
|
|
16
|
-
} catch (err) {
|
|
17
|
-
const apiError = err instanceof FonderieApiError ? err : new FonderieApiError("unknown", String(err), 0);
|
|
18
|
-
setError(apiError);
|
|
19
|
-
throw apiError;
|
|
20
|
-
} finally {
|
|
21
|
-
setIsLoading(false);
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
[client]
|
|
25
|
-
);
|
|
26
|
-
return { deleteTemplate, isLoading, error };
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// src/hooks/useSaveTemplate.ts
|
|
30
|
-
import { FonderieApiError as FonderieApiError2 } from "@fonderie/client";
|
|
31
|
-
import { useCallback as useCallback2, useState as useState2 } from "react";
|
|
32
|
-
function useSaveTemplate(client) {
|
|
33
|
-
const [isLoading, setIsLoading] = useState2(false);
|
|
34
|
-
const [error, setError] = useState2(null);
|
|
35
|
-
const saveTemplate = useCallback2(
|
|
36
|
-
async (type, input, locale) => {
|
|
37
|
-
setIsLoading(true);
|
|
38
|
-
setError(null);
|
|
39
|
-
try {
|
|
40
|
-
const { result } = await client.setTemplate(type, input, locale);
|
|
41
|
-
return result;
|
|
42
|
-
} catch (err) {
|
|
43
|
-
const apiError = err instanceof FonderieApiError2 ? err : new FonderieApiError2("unknown", String(err), 0);
|
|
44
|
-
setError(apiError);
|
|
45
|
-
throw apiError;
|
|
46
|
-
} finally {
|
|
47
|
-
setIsLoading(false);
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
[client]
|
|
51
|
-
);
|
|
52
|
-
return { saveTemplate, isLoading, error };
|
|
53
|
-
}
|
|
2
|
+
import { CourierAdminClient, FonderieApiError as FonderieApiError4 } from "@fonderie/client";
|
|
54
3
|
|
|
55
4
|
// src/hooks/useTemplate.ts
|
|
56
|
-
import { FonderieApiError
|
|
57
|
-
import { useCallback
|
|
5
|
+
import { FonderieApiError } from "@fonderie/client";
|
|
6
|
+
import { useCallback, useEffect, useState } from "react";
|
|
58
7
|
function useTemplate(client, type, locale) {
|
|
59
|
-
const [template, setTemplate] =
|
|
60
|
-
const [isLoading, setIsLoading] =
|
|
61
|
-
const [error, setError] =
|
|
62
|
-
const refresh =
|
|
8
|
+
const [template, setTemplate] = useState(null);
|
|
9
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
10
|
+
const [error, setError] = useState(null);
|
|
11
|
+
const refresh = useCallback(async () => {
|
|
63
12
|
setIsLoading(true);
|
|
64
13
|
setError(null);
|
|
65
14
|
try {
|
|
66
15
|
const { result } = await client.getTemplate(type, locale);
|
|
67
16
|
setTemplate(result);
|
|
68
17
|
} catch (err) {
|
|
69
|
-
const apiError = err instanceof
|
|
18
|
+
const apiError = err instanceof FonderieApiError ? err : new FonderieApiError("unknown", String(err), 0);
|
|
70
19
|
setError(apiError);
|
|
71
20
|
} finally {
|
|
72
21
|
setIsLoading(false);
|
|
@@ -79,26 +28,26 @@ function useTemplate(client, type, locale) {
|
|
|
79
28
|
}
|
|
80
29
|
|
|
81
30
|
// src/hooks/useTemplateRevisions.ts
|
|
82
|
-
import { FonderieApiError as
|
|
83
|
-
import { useCallback as
|
|
31
|
+
import { FonderieApiError as FonderieApiError2 } from "@fonderie/client";
|
|
32
|
+
import { useCallback as useCallback2, useEffect as useEffect2, useState as useState2 } from "react";
|
|
84
33
|
function useTemplateRevisions(client, type, locale) {
|
|
85
|
-
const [revisions, setRevisions] =
|
|
86
|
-
const [isLoading, setIsLoading] =
|
|
87
|
-
const [error, setError] =
|
|
88
|
-
const refresh =
|
|
34
|
+
const [revisions, setRevisions] = useState2([]);
|
|
35
|
+
const [isLoading, setIsLoading] = useState2(true);
|
|
36
|
+
const [error, setError] = useState2(null);
|
|
37
|
+
const refresh = useCallback2(async () => {
|
|
89
38
|
setIsLoading(true);
|
|
90
39
|
setError(null);
|
|
91
40
|
try {
|
|
92
41
|
const { result } = await client.listRevisions(type, locale);
|
|
93
42
|
setRevisions(result);
|
|
94
43
|
} catch (err) {
|
|
95
|
-
const apiError = err instanceof
|
|
44
|
+
const apiError = err instanceof FonderieApiError2 ? err : new FonderieApiError2("unknown", String(err), 0);
|
|
96
45
|
setError(apiError);
|
|
97
46
|
} finally {
|
|
98
47
|
setIsLoading(false);
|
|
99
48
|
}
|
|
100
49
|
}, [client, type, locale]);
|
|
101
|
-
const rollback =
|
|
50
|
+
const rollback = useCallback2(
|
|
102
51
|
async (toVersion) => {
|
|
103
52
|
setError(null);
|
|
104
53
|
try {
|
|
@@ -106,7 +55,7 @@ function useTemplateRevisions(client, type, locale) {
|
|
|
106
55
|
await refresh();
|
|
107
56
|
return result;
|
|
108
57
|
} catch (err) {
|
|
109
|
-
const apiError = err instanceof
|
|
58
|
+
const apiError = err instanceof FonderieApiError2 ? err : new FonderieApiError2("unknown", String(err), 0);
|
|
110
59
|
setError(apiError);
|
|
111
60
|
throw apiError;
|
|
112
61
|
}
|
|
@@ -120,35 +69,62 @@ function useTemplateRevisions(client, type, locale) {
|
|
|
120
69
|
}
|
|
121
70
|
|
|
122
71
|
// src/hooks/useTemplates.ts
|
|
123
|
-
import { FonderieApiError as
|
|
124
|
-
import { useCallback as
|
|
72
|
+
import { FonderieApiError as FonderieApiError3 } from "@fonderie/client";
|
|
73
|
+
import { useCallback as useCallback3, useEffect as useEffect3, useState as useState3 } from "react";
|
|
125
74
|
function useTemplates(client) {
|
|
126
|
-
const [templates, setTemplates] =
|
|
127
|
-
const [isLoading, setIsLoading] =
|
|
128
|
-
const [error, setError] =
|
|
129
|
-
const refresh =
|
|
75
|
+
const [templates, setTemplates] = useState3([]);
|
|
76
|
+
const [isLoading, setIsLoading] = useState3(true);
|
|
77
|
+
const [error, setError] = useState3(null);
|
|
78
|
+
const refresh = useCallback3(async () => {
|
|
130
79
|
setIsLoading(true);
|
|
131
80
|
setError(null);
|
|
132
81
|
try {
|
|
133
82
|
const { result } = await client.listTemplates();
|
|
134
83
|
setTemplates(result);
|
|
135
84
|
} catch (err) {
|
|
136
|
-
const apiError = err instanceof
|
|
85
|
+
const apiError = err instanceof FonderieApiError3 ? err : new FonderieApiError3("unknown", String(err), 0);
|
|
137
86
|
setError(apiError);
|
|
138
87
|
} finally {
|
|
139
88
|
setIsLoading(false);
|
|
140
89
|
}
|
|
141
90
|
}, [client]);
|
|
91
|
+
const saveTemplate = useCallback3(
|
|
92
|
+
async (type, input, locale) => {
|
|
93
|
+
setError(null);
|
|
94
|
+
try {
|
|
95
|
+
const { result } = await client.setTemplate(type, input, locale);
|
|
96
|
+
await refresh();
|
|
97
|
+
return result;
|
|
98
|
+
} catch (err) {
|
|
99
|
+
const apiError = err instanceof FonderieApiError3 ? err : new FonderieApiError3("unknown", String(err), 0);
|
|
100
|
+
setError(apiError);
|
|
101
|
+
throw apiError;
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
[client, refresh]
|
|
105
|
+
);
|
|
106
|
+
const removeTemplate = useCallback3(
|
|
107
|
+
async (type, locale) => {
|
|
108
|
+
setError(null);
|
|
109
|
+
try {
|
|
110
|
+
await client.deleteTemplate(type, locale);
|
|
111
|
+
await refresh();
|
|
112
|
+
} catch (err) {
|
|
113
|
+
const apiError = err instanceof FonderieApiError3 ? err : new FonderieApiError3("unknown", String(err), 0);
|
|
114
|
+
setError(apiError);
|
|
115
|
+
throw apiError;
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
[client, refresh]
|
|
119
|
+
);
|
|
142
120
|
useEffect3(() => {
|
|
143
121
|
void refresh();
|
|
144
122
|
}, [refresh]);
|
|
145
|
-
return { templates, isLoading, error, refresh };
|
|
123
|
+
return { templates, isLoading, error, refresh, saveTemplate, removeTemplate };
|
|
146
124
|
}
|
|
147
125
|
export {
|
|
148
126
|
CourierAdminClient,
|
|
149
|
-
|
|
150
|
-
useDeleteTemplate,
|
|
151
|
-
useSaveTemplate,
|
|
127
|
+
FonderieApiError4 as FonderieApiError,
|
|
152
128
|
useTemplate,
|
|
153
129
|
useTemplateRevisions,
|
|
154
130
|
useTemplates
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/hooks/useDeleteTemplate.ts","../src/hooks/useSaveTemplate.ts","../src/hooks/useTemplate.ts","../src/hooks/useTemplateRevisions.ts","../src/hooks/useTemplates.ts"],"sourcesContent":["export type {\n\tICourierAdminClientOptions,\n\tIRollbackTemplateInput,\n\tISetTemplateInput,\n\tITemplateEntry,\n\tITemplateRevision,\n} from '@fonderie/client';\nexport { CourierAdminClient, FonderieApiError } from '@fonderie/client';\nexport type {\n\tIUseDeleteTemplateReturn,\n\tIUseSaveTemplateReturn,\n\tIUseTemplateReturn,\n\tIUseTemplateRevisionsReturn,\n\tIUseTemplatesReturn,\n} from './hooks';\nexport {\n\tuseDeleteTemplate,\n\tuseSaveTemplate,\n\tuseTemplate,\n\tuseTemplateRevisions,\n\tuseTemplates,\n} from './hooks';\n","import type { CourierAdminClient } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useState } from 'react';\n\nexport interface IUseDeleteTemplateReturn {\n\tdeleteTemplate: (type: string, locale?: string | null) => Promise<void>;\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n}\n\nexport function useDeleteTemplate(client: CourierAdminClient): IUseDeleteTemplateReturn {\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst deleteTemplate = useCallback(\n\t\tasync (type: string, locale?: string | null) => {\n\t\t\tsetIsLoading(true);\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tawait client.deleteTemplate(type, locale);\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t},\n\t\t[client],\n\t);\n\n\treturn { deleteTemplate, isLoading, error };\n}\n","import type { CourierAdminClient, ISetTemplateInput, ITemplateEntry } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useState } from 'react';\n\nexport interface IUseSaveTemplateReturn {\n\tsaveTemplate: (\n\t\ttype: string,\n\t\tinput: ISetTemplateInput,\n\t\tlocale?: string | null,\n\t) => Promise<ITemplateEntry>;\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n}\n\nexport function useSaveTemplate(client: CourierAdminClient): IUseSaveTemplateReturn {\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst saveTemplate = useCallback(\n\t\tasync (type: string, input: ISetTemplateInput, locale?: string | null) => {\n\t\t\tsetIsLoading(true);\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tconst { result } = await client.setTemplate(type, input, locale);\n\t\t\t\treturn result;\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t},\n\t\t[client],\n\t);\n\n\treturn { saveTemplate, isLoading, error };\n}\n","import type { CourierAdminClient, ITemplateEntry } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplateReturn {\n\ttemplate: ITemplateEntry | null;\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n}\n\nexport function useTemplate(\n\tclient: CourierAdminClient,\n\ttype: string,\n\tlocale?: string | null,\n): IUseTemplateReturn {\n\tconst [template, setTemplate] = useState<ITemplateEntry | null>(null);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.getTemplate(type, locale);\n\t\t\tsetTemplate(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client, type, locale]);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { template, isLoading, error, refresh };\n}\n","import type { CourierAdminClient, ITemplateEntry, ITemplateRevision } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplateRevisionsReturn {\n\trevisions: ITemplateRevision[];\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n\trollback: (toVersion: number) => Promise<ITemplateEntry>;\n}\n\nexport function useTemplateRevisions(\n\tclient: CourierAdminClient,\n\ttype: string,\n\tlocale?: string | null,\n): IUseTemplateRevisionsReturn {\n\tconst [revisions, setRevisions] = useState<ITemplateRevision[]>([]);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.listRevisions(type, locale);\n\t\t\tsetRevisions(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client, type, locale]);\n\n\tconst rollback = useCallback(\n\t\tasync (toVersion: number) => {\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tconst { result } = await client.rollback(type, { toVersion }, locale);\n\t\t\t\tawait refresh();\n\t\t\t\treturn result;\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t}\n\t\t},\n\t\t[client, type, locale, refresh],\n\t);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { revisions, isLoading, error, refresh, rollback };\n}\n","import type { CourierAdminClient, ITemplateEntry } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplatesReturn {\n\ttemplates: ITemplateEntry[];\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n}\n\nexport function useTemplates(client: CourierAdminClient): IUseTemplatesReturn {\n\tconst [templates, setTemplates] = useState<ITemplateEntry[]>([]);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.listTemplates();\n\t\t\tsetTemplates(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client]);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { templates, isLoading, error, refresh };\n}\n"],"mappings":"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","names":["FonderieApiError","FonderieApiError","useCallback","useState","FonderieApiError","useCallback","useState","FonderieApiError","useCallback","useEffect","useState","FonderieApiError","useCallback","useEffect","useState"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/hooks/useTemplate.ts","../src/hooks/useTemplateRevisions.ts","../src/hooks/useTemplates.ts"],"sourcesContent":["export type {\n\tICourierAdminClientOptions,\n\tIRollbackTemplateInput,\n\tISetTemplateInput,\n\tITemplateEntry,\n\tITemplateRevision,\n} from '@fonderie/client';\nexport { CourierAdminClient, FonderieApiError } from '@fonderie/client';\nexport type {\n\tIUseTemplateReturn,\n\tIUseTemplateRevisionsReturn,\n\tIUseTemplatesReturn,\n} from './hooks';\nexport {\n\tuseTemplate,\n\tuseTemplateRevisions,\n\tuseTemplates,\n} from './hooks';\n","import type { CourierAdminClient, ITemplateEntry } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplateReturn {\n\ttemplate: ITemplateEntry | null;\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n}\n\nexport function useTemplate(\n\tclient: CourierAdminClient,\n\ttype: string,\n\tlocale?: string | null,\n): IUseTemplateReturn {\n\tconst [template, setTemplate] = useState<ITemplateEntry | null>(null);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.getTemplate(type, locale);\n\t\t\tsetTemplate(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client, type, locale]);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { template, isLoading, error, refresh };\n}\n","import type { CourierAdminClient, ITemplateEntry, ITemplateRevision } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplateRevisionsReturn {\n\trevisions: ITemplateRevision[];\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n\trollback: (toVersion: number) => Promise<ITemplateEntry>;\n}\n\nexport function useTemplateRevisions(\n\tclient: CourierAdminClient,\n\ttype: string,\n\tlocale?: string | null,\n): IUseTemplateRevisionsReturn {\n\tconst [revisions, setRevisions] = useState<ITemplateRevision[]>([]);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.listRevisions(type, locale);\n\t\t\tsetRevisions(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client, type, locale]);\n\n\tconst rollback = useCallback(\n\t\tasync (toVersion: number) => {\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tconst { result } = await client.rollback(type, { toVersion }, locale);\n\t\t\t\tawait refresh();\n\t\t\t\treturn result;\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t}\n\t\t},\n\t\t[client, type, locale, refresh],\n\t);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { revisions, isLoading, error, refresh, rollback };\n}\n","import type { CourierAdminClient, ISetTemplateInput, ITemplateEntry } from '@fonderie/client';\nimport { FonderieApiError } from '@fonderie/client';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface IUseTemplatesReturn {\n\ttemplates: ITemplateEntry[];\n\tisLoading: boolean;\n\terror: FonderieApiError | null;\n\trefresh: () => Promise<void>;\n\tsaveTemplate: (\n\t\ttype: string,\n\t\tinput: ISetTemplateInput,\n\t\tlocale?: string | null,\n\t) => Promise<ITemplateEntry>;\n\tremoveTemplate: (type: string, locale?: string | null) => Promise<void>;\n}\n\nexport function useTemplates(client: CourierAdminClient): IUseTemplatesReturn {\n\tconst [templates, setTemplates] = useState<ITemplateEntry[]>([]);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<FonderieApiError | null>(null);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst { result } = await client.listTemplates();\n\t\t\tsetTemplates(result);\n\t\t} catch (err) {\n\t\t\tconst apiError =\n\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\tsetError(apiError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client]);\n\n\tconst saveTemplate = useCallback(\n\t\tasync (type: string, input: ISetTemplateInput, locale?: string | null) => {\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tconst { result } = await client.setTemplate(type, input, locale);\n\t\t\t\tawait refresh();\n\t\t\t\treturn result;\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t}\n\t\t},\n\t\t[client, refresh],\n\t);\n\n\tconst removeTemplate = useCallback(\n\t\tasync (type: string, locale?: string | null) => {\n\t\t\tsetError(null);\n\t\t\ttry {\n\t\t\t\tawait client.deleteTemplate(type, locale);\n\t\t\t\tawait refresh();\n\t\t\t} catch (err) {\n\t\t\t\tconst apiError =\n\t\t\t\t\terr instanceof FonderieApiError ? err : new FonderieApiError('unknown', String(err), 0);\n\t\t\t\tsetError(apiError);\n\t\t\t\tthrow apiError;\n\t\t\t}\n\t\t},\n\t\t[client, refresh],\n\t);\n\n\tuseEffect(() => {\n\t\tvoid refresh();\n\t}, [refresh]);\n\n\treturn { templates, isLoading, error, refresh, saveTemplate, removeTemplate };\n}\n"],"mappings":"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","names":["FonderieApiError","FonderieApiError","useCallback","useEffect","useState","FonderieApiError","useCallback","useEffect","useState"]}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fonderie/react-courier-admin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "React hooks for the Fonderie courier admin API (email/SMS/push template management) — thin bindings over @fonderie/client's CourierAdminClient.",
|
|
5
5
|
"keywords": [
|
|
6
|
-
"
|
|
6
|
+
"fonderiejs",
|
|
7
7
|
"react",
|
|
8
8
|
"courier",
|
|
9
9
|
"templates",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"react": ">=18.0.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@types/node": "^
|
|
45
|
-
"@types/react": "^
|
|
46
|
-
"react": "^
|
|
44
|
+
"@types/node": "^26.2.0",
|
|
45
|
+
"@types/react": "^19.2.18",
|
|
46
|
+
"react": "^19.2.8",
|
|
47
47
|
"tsup": "^8.5.1",
|
|
48
48
|
"typescript": "^6.0.3"
|
|
49
49
|
},
|