@fonderie/react-courier-admin 0.2.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/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: () => import_client6.CourierAdminClient,
24
- FonderieApiError: () => import_client6.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 import_client6 = require("@fonderie/client");
30
+ var import_client4 = require("@fonderie/client");
33
31
 
34
- // src/hooks/useDeleteTemplate.ts
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, import_react3.useState)(null);
90
- const [isLoading, setIsLoading] = (0, import_react3.useState)(true);
91
- const [error, setError] = (0, import_react3.useState)(null);
92
- const refresh = (0, import_react3.useCallback)(async () => {
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 import_client3.FonderieApiError ? err : new import_client3.FonderieApiError("unknown", String(err), 0);
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, import_react3.useEffect)(() => {
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 import_client4 = require("@fonderie/client");
113
- var import_react4 = require("react");
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, import_react4.useState)([]);
116
- const [isLoading, setIsLoading] = (0, import_react4.useState)(true);
117
- const [error, setError] = (0, import_react4.useState)(null);
118
- const refresh = (0, import_react4.useCallback)(async () => {
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 import_client4.FonderieApiError ? err : new import_client4.FonderieApiError("unknown", String(err), 0);
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, import_react4.useCallback)(
78
+ const rollback = (0, import_react2.useCallback)(
132
79
  async (toVersion) => {
133
80
  setError(null);
134
81
  try {
@@ -136,40 +83,40 @@ function useTemplateRevisions(client, type, locale) {
136
83
  await refresh();
137
84
  return result;
138
85
  } catch (err) {
139
- const apiError = err instanceof import_client4.FonderieApiError ? err : new import_client4.FonderieApiError("unknown", String(err), 0);
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, import_react4.useEffect)(() => {
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 import_client5 = require("@fonderie/client");
154
- var import_react5 = require("react");
100
+ var import_client3 = require("@fonderie/client");
101
+ var import_react3 = require("react");
155
102
  function useTemplates(client) {
156
- const [templates, setTemplates] = (0, import_react5.useState)([]);
157
- const [isLoading, setIsLoading] = (0, import_react5.useState)(true);
158
- const [error, setError] = (0, import_react5.useState)(null);
159
- const refresh = (0, import_react5.useCallback)(async () => {
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 import_client5.FonderieApiError ? err : new import_client5.FonderieApiError("unknown", String(err), 0);
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
- const saveTemplate = (0, import_react5.useCallback)(
119
+ const saveTemplate = (0, import_react3.useCallback)(
173
120
  async (type, input, locale) => {
174
121
  setError(null);
175
122
  try {
@@ -177,28 +124,28 @@ function useTemplates(client) {
177
124
  await refresh();
178
125
  return result;
179
126
  } catch (err) {
180
- const apiError = err instanceof import_client5.FonderieApiError ? err : new import_client5.FonderieApiError("unknown", String(err), 0);
127
+ const apiError = err instanceof import_client3.FonderieApiError ? err : new import_client3.FonderieApiError("unknown", String(err), 0);
181
128
  setError(apiError);
182
129
  throw apiError;
183
130
  }
184
131
  },
185
132
  [client, refresh]
186
133
  );
187
- const removeTemplate = (0, import_react5.useCallback)(
134
+ const removeTemplate = (0, import_react3.useCallback)(
188
135
  async (type, locale) => {
189
136
  setError(null);
190
137
  try {
191
138
  await client.deleteTemplate(type, locale);
192
139
  await refresh();
193
140
  } catch (err) {
194
- const apiError = err instanceof import_client5.FonderieApiError ? err : new import_client5.FonderieApiError("unknown", String(err), 0);
141
+ const apiError = err instanceof import_client3.FonderieApiError ? err : new import_client3.FonderieApiError("unknown", String(err), 0);
195
142
  setError(apiError);
196
143
  throw apiError;
197
144
  }
198
145
  },
199
146
  [client, refresh]
200
147
  );
201
- (0, import_react5.useEffect)(() => {
148
+ (0, import_react3.useEffect)(() => {
202
149
  void refresh();
203
150
  }, [refresh]);
204
151
  return { templates, isLoading, error, refresh, saveTemplate, removeTemplate };
@@ -207,8 +154,6 @@ function useTemplates(client) {
207
154
  0 && (module.exports = {
208
155
  CourierAdminClient,
209
156
  FonderieApiError,
210
- useDeleteTemplate,
211
- useSaveTemplate,
212
157
  useTemplate,
213
158
  useTemplateRevisions,
214
159
  useTemplates
@@ -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\n/** @deprecated Use `useTemplates().removeTemplate` instead — it refreshes the list after deleting. */\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\n/** @deprecated Use `useTemplates().saveTemplate` instead — it refreshes the list after saving. */\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, 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","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,22 +1,6 @@
1
- import { FonderieApiError, CourierAdminClient, ISetTemplateInput, ITemplateEntry, ITemplateRevision } from '@fonderie/client';
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
- /** @deprecated Use `useTemplates().removeTemplate` instead — it refreshes the list after deleting. */
10
- declare function useDeleteTemplate(client: CourierAdminClient): IUseDeleteTemplateReturn;
11
-
12
- interface IUseSaveTemplateReturn {
13
- saveTemplate: (type: string, input: ISetTemplateInput, locale?: string | null) => Promise<ITemplateEntry>;
14
- isLoading: boolean;
15
- error: FonderieApiError | null;
16
- }
17
- /** @deprecated Use `useTemplates().saveTemplate` instead — it refreshes the list after saving. */
18
- declare function useSaveTemplate(client: CourierAdminClient): IUseSaveTemplateReturn;
19
-
20
4
  interface IUseTemplateReturn {
21
5
  template: ITemplateEntry | null;
22
6
  isLoading: boolean;
@@ -44,4 +28,4 @@ interface IUseTemplatesReturn {
44
28
  }
45
29
  declare function useTemplates(client: CourierAdminClient): IUseTemplatesReturn;
46
30
 
47
- export { type IUseDeleteTemplateReturn, type IUseSaveTemplateReturn, type IUseTemplateReturn, type IUseTemplateRevisionsReturn, type IUseTemplatesReturn, useDeleteTemplate, useSaveTemplate, useTemplate, useTemplateRevisions, useTemplates };
31
+ export { type IUseTemplateReturn, type IUseTemplateRevisionsReturn, type IUseTemplatesReturn, useTemplate, useTemplateRevisions, useTemplates };
package/dist/index.d.ts CHANGED
@@ -1,22 +1,6 @@
1
- import { FonderieApiError, CourierAdminClient, ISetTemplateInput, ITemplateEntry, ITemplateRevision } from '@fonderie/client';
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
- /** @deprecated Use `useTemplates().removeTemplate` instead — it refreshes the list after deleting. */
10
- declare function useDeleteTemplate(client: CourierAdminClient): IUseDeleteTemplateReturn;
11
-
12
- interface IUseSaveTemplateReturn {
13
- saveTemplate: (type: string, input: ISetTemplateInput, locale?: string | null) => Promise<ITemplateEntry>;
14
- isLoading: boolean;
15
- error: FonderieApiError | null;
16
- }
17
- /** @deprecated Use `useTemplates().saveTemplate` instead — it refreshes the list after saving. */
18
- declare function useSaveTemplate(client: CourierAdminClient): IUseSaveTemplateReturn;
19
-
20
4
  interface IUseTemplateReturn {
21
5
  template: ITemplateEntry | null;
22
6
  isLoading: boolean;
@@ -44,4 +28,4 @@ interface IUseTemplatesReturn {
44
28
  }
45
29
  declare function useTemplates(client: CourierAdminClient): IUseTemplatesReturn;
46
30
 
47
- export { type IUseDeleteTemplateReturn, type IUseSaveTemplateReturn, type IUseTemplateReturn, type IUseTemplateRevisionsReturn, type IUseTemplatesReturn, useDeleteTemplate, useSaveTemplate, useTemplate, useTemplateRevisions, useTemplates };
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 FonderieApiError6 } from "@fonderie/client";
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 as FonderieApiError3 } from "@fonderie/client";
57
- import { useCallback as useCallback3, useEffect, useState as useState3 } from "react";
5
+ import { FonderieApiError } from "@fonderie/client";
6
+ import { useCallback, useEffect, useState } from "react";
58
7
  function useTemplate(client, type, locale) {
59
- const [template, setTemplate] = useState3(null);
60
- const [isLoading, setIsLoading] = useState3(true);
61
- const [error, setError] = useState3(null);
62
- const refresh = useCallback3(async () => {
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 FonderieApiError3 ? err : new FonderieApiError3("unknown", String(err), 0);
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 FonderieApiError4 } from "@fonderie/client";
83
- import { useCallback as useCallback4, useEffect as useEffect2, useState as useState4 } from "react";
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] = useState4([]);
86
- const [isLoading, setIsLoading] = useState4(true);
87
- const [error, setError] = useState4(null);
88
- const refresh = useCallback4(async () => {
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 FonderieApiError4 ? err : new FonderieApiError4("unknown", String(err), 0);
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 = useCallback4(
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 FonderieApiError4 ? err : new FonderieApiError4("unknown", String(err), 0);
58
+ const apiError = err instanceof FonderieApiError2 ? err : new FonderieApiError2("unknown", String(err), 0);
110
59
  setError(apiError);
111
60
  throw apiError;
112
61
  }
@@ -120,26 +69,26 @@ function useTemplateRevisions(client, type, locale) {
120
69
  }
121
70
 
122
71
  // src/hooks/useTemplates.ts
123
- import { FonderieApiError as FonderieApiError5 } from "@fonderie/client";
124
- import { useCallback as useCallback5, useEffect as useEffect3, useState as useState5 } from "react";
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] = useState5([]);
127
- const [isLoading, setIsLoading] = useState5(true);
128
- const [error, setError] = useState5(null);
129
- const refresh = useCallback5(async () => {
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 FonderieApiError5 ? err : new FonderieApiError5("unknown", String(err), 0);
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]);
142
- const saveTemplate = useCallback5(
91
+ const saveTemplate = useCallback3(
143
92
  async (type, input, locale) => {
144
93
  setError(null);
145
94
  try {
@@ -147,21 +96,21 @@ function useTemplates(client) {
147
96
  await refresh();
148
97
  return result;
149
98
  } catch (err) {
150
- const apiError = err instanceof FonderieApiError5 ? err : new FonderieApiError5("unknown", String(err), 0);
99
+ const apiError = err instanceof FonderieApiError3 ? err : new FonderieApiError3("unknown", String(err), 0);
151
100
  setError(apiError);
152
101
  throw apiError;
153
102
  }
154
103
  },
155
104
  [client, refresh]
156
105
  );
157
- const removeTemplate = useCallback5(
106
+ const removeTemplate = useCallback3(
158
107
  async (type, locale) => {
159
108
  setError(null);
160
109
  try {
161
110
  await client.deleteTemplate(type, locale);
162
111
  await refresh();
163
112
  } catch (err) {
164
- const apiError = err instanceof FonderieApiError5 ? err : new FonderieApiError5("unknown", String(err), 0);
113
+ const apiError = err instanceof FonderieApiError3 ? err : new FonderieApiError3("unknown", String(err), 0);
165
114
  setError(apiError);
166
115
  throw apiError;
167
116
  }
@@ -175,9 +124,7 @@ function useTemplates(client) {
175
124
  }
176
125
  export {
177
126
  CourierAdminClient,
178
- FonderieApiError6 as FonderieApiError,
179
- useDeleteTemplate,
180
- useSaveTemplate,
127
+ FonderieApiError4 as FonderieApiError,
181
128
  useTemplate,
182
129
  useTemplateRevisions,
183
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\n/** @deprecated Use `useTemplates().removeTemplate` instead — it refreshes the list after deleting. */\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\n/** @deprecated Use `useTemplates().saveTemplate` instead — it refreshes the list after saving. */\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, 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","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,6 +1,6 @@
1
1
  {
2
2
  "name": "@fonderie/react-courier-admin",
3
- "version": "0.2.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",