@scalemule/news-publication 0.0.48 → 0.0.49
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 +28 -0
- package/dist/{chunk-GB36YM56.js → chunk-2MEYHM7M.js} +11 -1
- package/dist/chunk-4JRWZXAP.js +62 -0
- package/dist/chunk-MBBPEFDA.js +124 -0
- package/dist/chunk-TTLM7YOH.js +444 -0
- package/dist/chunk-ZXH3O537.js +251 -0
- package/dist/community-maps-view.d.cts +3 -3
- package/dist/community-maps-view.d.ts +3 -3
- package/dist/cookie-consent-banner.d.cts +2 -2
- package/dist/cookie-consent-banner.d.ts +2 -2
- package/dist/cookie-settings-view.d.cts +2 -2
- package/dist/cookie-settings-view.d.ts +2 -2
- package/dist/index.cjs +29 -1
- package/dist/index.d.cts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -3
- package/dist/marketplace-forms.d.cts +3 -3
- package/dist/marketplace-forms.d.ts +3 -3
- package/dist/marketplace-view.d.cts +5 -5
- package/dist/marketplace-view.d.ts +5 -5
- package/dist/{meet-RWmfj3I3.d.cts → meet-BWpxY20X.d.ts} +5 -0
- package/dist/{meet-RWmfj3I3.d.ts → meet-CO9Unz5M.d.cts} +5 -0
- package/dist/meet-forms.d.cts +7 -6
- package/dist/meet-forms.d.ts +7 -6
- package/dist/meet-forms.js +2 -1
- package/dist/meet-view.cjs +22 -2
- package/dist/meet-view.d.cts +7 -5
- package/dist/meet-view.d.ts +7 -5
- package/dist/meet-view.js +21 -4
- package/dist/network-bar.d.cts +2 -2
- package/dist/network-bar.d.ts +2 -2
- package/dist/network-copyright.d.cts +2 -2
- package/dist/network-copyright.d.ts +2 -2
- package/dist/pets-auth-server.cjs +212 -0
- package/dist/pets-auth-server.d.cts +17 -0
- package/dist/pets-auth-server.d.ts +17 -0
- package/dist/pets-auth-server.js +155 -0
- package/dist/pets-forms.cjs +762 -0
- package/dist/pets-forms.d.cts +26 -0
- package/dist/pets-forms.d.ts +26 -0
- package/dist/pets-forms.js +712 -0
- package/dist/pets-interactions.cjs +332 -0
- package/dist/pets-interactions.d.cts +20 -0
- package/dist/pets-interactions.d.ts +20 -0
- package/dist/pets-interactions.js +319 -0
- package/dist/pets-publication.cjs +818 -0
- package/dist/pets-publication.d.cts +36 -0
- package/dist/pets-publication.d.ts +36 -0
- package/dist/pets-publication.js +177 -0
- package/dist/pets-server.cjs +289 -0
- package/dist/pets-server.d.cts +42 -0
- package/dist/pets-server.d.ts +42 -0
- package/dist/pets-server.js +2 -0
- package/dist/pets-view.cjs +541 -0
- package/dist/pets-view.d.cts +56 -0
- package/dist/pets-view.d.ts +56 -0
- package/dist/pets-view.js +4 -0
- package/dist/pets.cjs +138 -0
- package/dist/pets.d.cts +127 -0
- package/dist/pets.d.ts +127 -0
- package/dist/pets.js +1 -0
- package/dist/sponsorship-view.d.cts +2 -2
- package/dist/sponsorship-view.d.ts +2 -2
- package/dist/sponsorship-view.js +2 -62
- package/dist/story-review.d.cts +6 -6
- package/dist/story-review.d.ts +6 -6
- package/dist/theme-toggle.d.cts +2 -2
- package/dist/theme-toggle.d.ts +2 -2
- package/dist/verified-card.d.cts +3 -3
- package/dist/verified-card.d.ts +3 -3
- package/package.json +40 -3
- package/pets.css +538 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
// src/pets.ts
|
|
8
|
+
var PET_NOTIFICATION_CATEGORIES = [
|
|
9
|
+
["lost_found", "Lost & found"],
|
|
10
|
+
["walks", "Paw Walks"],
|
|
11
|
+
["adoption_events", "Adoption events"],
|
|
12
|
+
["celebrations", "Pet celebrations"],
|
|
13
|
+
["spotlight", "Paw of the Week"],
|
|
14
|
+
["community", "Community information"]
|
|
15
|
+
];
|
|
16
|
+
async function request(path, method = "GET", body) {
|
|
17
|
+
const response = await fetch(path, {
|
|
18
|
+
method,
|
|
19
|
+
credentials: "same-origin",
|
|
20
|
+
headers: { "content-type": "application/json" },
|
|
21
|
+
body: body === void 0 ? void 0 : JSON.stringify(body)
|
|
22
|
+
});
|
|
23
|
+
const value = await response.json();
|
|
24
|
+
if (!response.ok)
|
|
25
|
+
throw new Error(
|
|
26
|
+
typeof value.error === "string" ? value.error : "Please try again."
|
|
27
|
+
);
|
|
28
|
+
return value.data ?? value;
|
|
29
|
+
}
|
|
30
|
+
function PetSignOut() {
|
|
31
|
+
const [error, setError] = react.useState("");
|
|
32
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
33
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
34
|
+
"button",
|
|
35
|
+
{
|
|
36
|
+
onClick: async () => {
|
|
37
|
+
try {
|
|
38
|
+
await request("/api/paw-auth/logout", "POST");
|
|
39
|
+
window.location.assign("/");
|
|
40
|
+
} catch {
|
|
41
|
+
setError("Sign-out could not be completed. Please try again.");
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
children: "Sign out"
|
|
45
|
+
}
|
|
46
|
+
),
|
|
47
|
+
error && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", children: error })
|
|
48
|
+
] });
|
|
49
|
+
}
|
|
50
|
+
function PetCommunityMemory({
|
|
51
|
+
selected,
|
|
52
|
+
signedIn
|
|
53
|
+
}) {
|
|
54
|
+
const [error, setError] = react.useState("");
|
|
55
|
+
react.useEffect(() => {
|
|
56
|
+
if (selected === void 0) return;
|
|
57
|
+
void request("/api/paw-community", "POST", { area_id: selected }).catch(
|
|
58
|
+
() => setError("Your community could not be remembered on this device.")
|
|
59
|
+
);
|
|
60
|
+
if (signedIn)
|
|
61
|
+
void request("/api/pets/preferences").then((record) => {
|
|
62
|
+
if (record.preferences.home_area_id === selected) return;
|
|
63
|
+
return request("/api/pets/preferences", "PUT", {
|
|
64
|
+
expected_revision: record.revision,
|
|
65
|
+
preferences: { ...record.preferences, home_area_id: selected }
|
|
66
|
+
});
|
|
67
|
+
}).catch(
|
|
68
|
+
() => setError(
|
|
69
|
+
"Your account preference could not be saved. You can retry from My pets."
|
|
70
|
+
)
|
|
71
|
+
);
|
|
72
|
+
}, [selected, signedIn]);
|
|
73
|
+
return error ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "paw-safety", role: "status", children: error }) : null;
|
|
74
|
+
}
|
|
75
|
+
function PetPreferencesForm({
|
|
76
|
+
record,
|
|
77
|
+
communities,
|
|
78
|
+
notificationsReady = false
|
|
79
|
+
}) {
|
|
80
|
+
const [value, setValue] = react.useState(record.preferences), [revision, setRevision] = react.useState(record.revision), [message, setMessage] = react.useState(""), [busy, setBusy] = react.useState(false);
|
|
81
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
82
|
+
"form",
|
|
83
|
+
{
|
|
84
|
+
className: "paw-form",
|
|
85
|
+
onSubmit: async (event) => {
|
|
86
|
+
event.preventDefault();
|
|
87
|
+
setBusy(true);
|
|
88
|
+
setMessage("");
|
|
89
|
+
try {
|
|
90
|
+
const result = await request(
|
|
91
|
+
"/api/pets/preferences",
|
|
92
|
+
"PUT",
|
|
93
|
+
{ expected_revision: revision, preferences: value }
|
|
94
|
+
);
|
|
95
|
+
setRevision(result.revision);
|
|
96
|
+
setValue(result.preferences);
|
|
97
|
+
setMessage("Your preferences are saved.");
|
|
98
|
+
await request("/api/paw-community", "POST", {
|
|
99
|
+
area_id: value.home_area_id
|
|
100
|
+
});
|
|
101
|
+
} catch (error) {
|
|
102
|
+
setMessage(
|
|
103
|
+
error instanceof Error ? error.message : "Please try again."
|
|
104
|
+
);
|
|
105
|
+
} finally {
|
|
106
|
+
setBusy(false);
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
children: [
|
|
110
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { children: "Your community, your pace." }),
|
|
111
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { children: [
|
|
112
|
+
"Home community",
|
|
113
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
114
|
+
"select",
|
|
115
|
+
{
|
|
116
|
+
value: value.home_area_id || "",
|
|
117
|
+
onChange: (e) => setValue({ ...value, home_area_id: e.target.value || null }),
|
|
118
|
+
children: [
|
|
119
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: "The whole Bay Area" }),
|
|
120
|
+
communities.map((c) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: c.id, children: c.name }, c.id))
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
)
|
|
124
|
+
] }),
|
|
125
|
+
/* @__PURE__ */ jsxRuntime.jsxs("fieldset", { children: [
|
|
126
|
+
/* @__PURE__ */ jsxRuntime.jsx("legend", { children: "Communities you follow" }),
|
|
127
|
+
communities.map((c) => /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "paw-consent", children: [
|
|
128
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
129
|
+
"input",
|
|
130
|
+
{
|
|
131
|
+
type: "checkbox",
|
|
132
|
+
checked: value.followed_area_ids.includes(c.id),
|
|
133
|
+
onChange: (e) => setValue({
|
|
134
|
+
...value,
|
|
135
|
+
followed_area_ids: e.target.checked ? [...value.followed_area_ids, c.id] : value.followed_area_ids.filter((id) => id !== c.id)
|
|
136
|
+
})
|
|
137
|
+
}
|
|
138
|
+
),
|
|
139
|
+
c.name
|
|
140
|
+
] }, c.id))
|
|
141
|
+
] }),
|
|
142
|
+
/* @__PURE__ */ jsxRuntime.jsxs("fieldset", { disabled: !notificationsReady, children: [
|
|
143
|
+
/* @__PURE__ */ jsxRuntime.jsx("legend", { children: "Optional community updates" }),
|
|
144
|
+
!notificationsReady && /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Community alerts are not active yet. No emails or alerts will be sent from these settings." }),
|
|
145
|
+
PET_NOTIFICATION_CATEGORIES.map(([key, label]) => /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "paw-consent", children: [
|
|
146
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
147
|
+
"input",
|
|
148
|
+
{
|
|
149
|
+
type: "checkbox",
|
|
150
|
+
checked: value.categories.includes(key),
|
|
151
|
+
onChange: (e) => setValue({
|
|
152
|
+
...value,
|
|
153
|
+
categories: e.target.checked ? [...value.categories, key] : value.categories.filter((c) => c !== key)
|
|
154
|
+
})
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
label
|
|
158
|
+
] }, key)),
|
|
159
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "paw-consent", children: [
|
|
160
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
161
|
+
"input",
|
|
162
|
+
{
|
|
163
|
+
type: "checkbox",
|
|
164
|
+
checked: value.email_enabled,
|
|
165
|
+
onChange: (e) => setValue({ ...value, email_enabled: e.target.checked })
|
|
166
|
+
}
|
|
167
|
+
),
|
|
168
|
+
"Email me selected updates"
|
|
169
|
+
] }),
|
|
170
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { children: [
|
|
171
|
+
"Frequency",
|
|
172
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
173
|
+
"select",
|
|
174
|
+
{
|
|
175
|
+
value: value.frequency || "weekly",
|
|
176
|
+
onChange: (e) => setValue({
|
|
177
|
+
...value,
|
|
178
|
+
frequency: e.target.value
|
|
179
|
+
}),
|
|
180
|
+
children: [
|
|
181
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "weekly", children: "Weekly digest" }),
|
|
182
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "daily", children: "Daily digest" }),
|
|
183
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "immediate", children: "As updates are approved" })
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
)
|
|
187
|
+
] })
|
|
188
|
+
] }),
|
|
189
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "paw-safety", children: "Account and submission messages are separate from optional community updates. Sponsors never receive your profile or preferences." }),
|
|
190
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { disabled: busy, children: "Save preferences" }),
|
|
191
|
+
message && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "status", children: message })
|
|
192
|
+
]
|
|
193
|
+
}
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
function PetResourceActions({
|
|
197
|
+
resource,
|
|
198
|
+
signedIn,
|
|
199
|
+
apiPath = "/api/pets"
|
|
200
|
+
}) {
|
|
201
|
+
const [active, setActive] = react.useState(false), [reporting, setReporting] = react.useState(false), [message, setMessage] = react.useState(""), [busy, setBusy] = react.useState(false);
|
|
202
|
+
const reportKey = react.useRef("");
|
|
203
|
+
const celebrate = ["profile", "photo", "spotlight", "celebration"].includes(resource.kind) && resource.content.category !== "memorial";
|
|
204
|
+
react.useEffect(() => {
|
|
205
|
+
if (signedIn && celebrate)
|
|
206
|
+
void request(`${apiPath}/${resource.id}/reaction`).then((v) => setActive(v.active)).catch(() => setMessage("Your reaction could not be loaded."));
|
|
207
|
+
}, [signedIn, celebrate, resource.id, apiPath]);
|
|
208
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": "Share and community care", children: [
|
|
209
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "paw-form-actions", children: [
|
|
210
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
211
|
+
"button",
|
|
212
|
+
{
|
|
213
|
+
onClick: async () => {
|
|
214
|
+
try {
|
|
215
|
+
if (navigator.share)
|
|
216
|
+
await navigator.share({
|
|
217
|
+
title: resource.content.name,
|
|
218
|
+
url: window.location.href
|
|
219
|
+
});
|
|
220
|
+
else {
|
|
221
|
+
await navigator.clipboard.writeText(window.location.href);
|
|
222
|
+
setMessage("Link copied.");
|
|
223
|
+
}
|
|
224
|
+
} catch (error) {
|
|
225
|
+
if (!(error instanceof DOMException && error.name === "AbortError"))
|
|
226
|
+
setMessage(
|
|
227
|
+
"You can copy the page address to share this story."
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
children: "Share this story"
|
|
232
|
+
}
|
|
233
|
+
),
|
|
234
|
+
celebrate && signedIn && /* @__PURE__ */ jsxRuntime.jsx(
|
|
235
|
+
"button",
|
|
236
|
+
{
|
|
237
|
+
disabled: busy,
|
|
238
|
+
"aria-pressed": active,
|
|
239
|
+
onClick: async () => {
|
|
240
|
+
setBusy(true);
|
|
241
|
+
try {
|
|
242
|
+
const result = await request(
|
|
243
|
+
`${apiPath}/${resource.id}/reaction`,
|
|
244
|
+
"PUT",
|
|
245
|
+
{ active: !active }
|
|
246
|
+
);
|
|
247
|
+
setActive(result.active);
|
|
248
|
+
setMessage(
|
|
249
|
+
result.active ? "A little love, shared." : "Reaction removed."
|
|
250
|
+
);
|
|
251
|
+
} catch (e) {
|
|
252
|
+
setMessage(
|
|
253
|
+
e instanceof Error ? e.message : "Please try again."
|
|
254
|
+
);
|
|
255
|
+
} finally {
|
|
256
|
+
setBusy(false);
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
children: active ? "Loved" : "Send a little love"
|
|
260
|
+
}
|
|
261
|
+
),
|
|
262
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
263
|
+
"button",
|
|
264
|
+
{
|
|
265
|
+
"aria-expanded": reporting,
|
|
266
|
+
onClick: () => setReporting(!reporting),
|
|
267
|
+
children: "Report a concern"
|
|
268
|
+
}
|
|
269
|
+
)
|
|
270
|
+
] }),
|
|
271
|
+
reporting && (signedIn ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
272
|
+
"form",
|
|
273
|
+
{
|
|
274
|
+
className: "paw-form",
|
|
275
|
+
onSubmit: async (event) => {
|
|
276
|
+
event.preventDefault();
|
|
277
|
+
const data = new FormData(event.currentTarget);
|
|
278
|
+
setBusy(true);
|
|
279
|
+
try {
|
|
280
|
+
if (!reportKey.current) reportKey.current = crypto.randomUUID();
|
|
281
|
+
await request(`${apiPath}/${resource.id}/reports`, "POST", {
|
|
282
|
+
reason: data.get("reason"),
|
|
283
|
+
details: data.get("details"),
|
|
284
|
+
idempotency_key: reportKey.current
|
|
285
|
+
});
|
|
286
|
+
setReporting(false);
|
|
287
|
+
setMessage(
|
|
288
|
+
"Your private report has been sent to the editorial team."
|
|
289
|
+
);
|
|
290
|
+
} catch (error) {
|
|
291
|
+
setMessage(
|
|
292
|
+
error instanceof Error ? error.message : "Please try again."
|
|
293
|
+
);
|
|
294
|
+
} finally {
|
|
295
|
+
setBusy(false);
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
children: [
|
|
299
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { children: [
|
|
300
|
+
"Concern",
|
|
301
|
+
/* @__PURE__ */ jsxRuntime.jsxs("select", { name: "reason", children: [
|
|
302
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "safety", children: "Safety or recovery scam" }),
|
|
303
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "privacy-removal", children: "Privacy or removal request" }),
|
|
304
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "inappropriate-media", children: "Inappropriate photograph" }),
|
|
305
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "duplicate", children: "Duplicate notice" }),
|
|
306
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "incorrect-information", children: "Incorrect information" }),
|
|
307
|
+
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "other", children: "Something else" })
|
|
308
|
+
] })
|
|
309
|
+
] }),
|
|
310
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { children: [
|
|
311
|
+
"Tell our editors",
|
|
312
|
+
/* @__PURE__ */ jsxRuntime.jsx("textarea", { name: "details", required: true, maxLength: 2e3 })
|
|
313
|
+
] }),
|
|
314
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { children: "Only the editorial team can read this report. Keep contact details and ownership evidence out of it." }),
|
|
315
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { disabled: busy, children: "Send private report" })
|
|
316
|
+
]
|
|
317
|
+
}
|
|
318
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("p", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
319
|
+
"a",
|
|
320
|
+
{
|
|
321
|
+
href: "/account?next=" + encodeURIComponent(`/pets/${resource.id}`),
|
|
322
|
+
children: "Sign in to send a private report."
|
|
323
|
+
}
|
|
324
|
+
) })),
|
|
325
|
+
message && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "status", children: message })
|
|
326
|
+
] });
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
exports.PetCommunityMemory = PetCommunityMemory;
|
|
330
|
+
exports.PetPreferencesForm = PetPreferencesForm;
|
|
331
|
+
exports.PetResourceActions = PetResourceActions;
|
|
332
|
+
exports.PetSignOut = PetSignOut;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { PetPreferenceRecord, PetCommunity, PetResource } from './pets.cjs';
|
|
3
|
+
|
|
4
|
+
declare function PetSignOut(): React__default.JSX.Element;
|
|
5
|
+
declare function PetCommunityMemory({ selected, signedIn, }: {
|
|
6
|
+
selected?: string | null;
|
|
7
|
+
signedIn: boolean;
|
|
8
|
+
}): React__default.JSX.Element | null;
|
|
9
|
+
declare function PetPreferencesForm({ record, communities, notificationsReady, }: {
|
|
10
|
+
record: PetPreferenceRecord;
|
|
11
|
+
communities: PetCommunity[];
|
|
12
|
+
notificationsReady?: boolean;
|
|
13
|
+
}): React__default.JSX.Element;
|
|
14
|
+
declare function PetResourceActions({ resource, signedIn, apiPath, }: {
|
|
15
|
+
resource: PetResource;
|
|
16
|
+
signedIn: boolean;
|
|
17
|
+
apiPath?: string;
|
|
18
|
+
}): React__default.JSX.Element;
|
|
19
|
+
|
|
20
|
+
export { PetCommunityMemory, PetPreferencesForm, PetResourceActions, PetSignOut };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { PetPreferenceRecord, PetCommunity, PetResource } from './pets.js';
|
|
3
|
+
|
|
4
|
+
declare function PetSignOut(): React__default.JSX.Element;
|
|
5
|
+
declare function PetCommunityMemory({ selected, signedIn, }: {
|
|
6
|
+
selected?: string | null;
|
|
7
|
+
signedIn: boolean;
|
|
8
|
+
}): React__default.JSX.Element | null;
|
|
9
|
+
declare function PetPreferencesForm({ record, communities, notificationsReady, }: {
|
|
10
|
+
record: PetPreferenceRecord;
|
|
11
|
+
communities: PetCommunity[];
|
|
12
|
+
notificationsReady?: boolean;
|
|
13
|
+
}): React__default.JSX.Element;
|
|
14
|
+
declare function PetResourceActions({ resource, signedIn, apiPath, }: {
|
|
15
|
+
resource: PetResource;
|
|
16
|
+
signedIn: boolean;
|
|
17
|
+
apiPath?: string;
|
|
18
|
+
}): React__default.JSX.Element;
|
|
19
|
+
|
|
20
|
+
export { PetCommunityMemory, PetPreferencesForm, PetResourceActions, PetSignOut };
|