@hadoku/task-ui-components 4.23.5 → 4.23.7

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.
Files changed (34) hide show
  1. package/dist/components/AvatarBuilder.d.ts +28 -0
  2. package/dist/components/AvatarBuilder.d.ts.map +1 -0
  3. package/dist/components/AvatarBuilder.js +731 -0
  4. package/dist/components/AvatarBuilder.js.map +1 -0
  5. package/dist/components/AvatarDialog.d.ts +6 -4
  6. package/dist/components/AvatarDialog.d.ts.map +1 -1
  7. package/dist/components/AvatarDialog.js +3 -3
  8. package/dist/components/AvatarDialog.js.map +1 -1
  9. package/dist/components/AvatarPicker.d.ts +21 -18
  10. package/dist/components/AvatarPicker.d.ts.map +1 -1
  11. package/dist/components/AvatarPicker.js +17 -145
  12. package/dist/components/AvatarPicker.js.map +1 -1
  13. package/dist/components/ConnectedSettings.d.ts.map +1 -1
  14. package/dist/components/ConnectedSettings.js +20 -1
  15. package/dist/components/ConnectedSettings.js.map +1 -1
  16. package/dist/components/LinkedAccounts.d.ts +21 -0
  17. package/dist/components/LinkedAccounts.d.ts.map +1 -0
  18. package/dist/components/LinkedAccounts.js +119 -0
  19. package/dist/components/LinkedAccounts.js.map +1 -0
  20. package/dist/lib/avatarData.d.ts +27 -0
  21. package/dist/lib/avatarData.d.ts.map +1 -0
  22. package/dist/lib/avatarData.js +23 -0
  23. package/dist/lib/avatarData.js.map +1 -0
  24. package/dist/vendor/wolffm/prefs-client/avatar.js +7 -1
  25. package/dist/vendor/wolffm/prefs-client/avatar.js.map +1 -1
  26. package/dist/vendor/wolffm/prefs-client/cosmetics.js +491 -0
  27. package/dist/vendor/wolffm/prefs-client/cosmetics.js.map +1 -0
  28. package/package.json +2 -2
  29. package/src/components/AvatarBuilder.tsx +901 -0
  30. package/src/components/AvatarDialog.tsx +8 -6
  31. package/src/components/AvatarPicker.tsx +45 -228
  32. package/src/components/ConnectedSettings.tsx +26 -0
  33. package/src/components/LinkedAccounts.tsx +176 -0
  34. package/src/lib/avatarData.ts +40 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * What the avatar dialog reads: the person's avatar settings (prefs-api, through
3
+ * `@wolffm/prefs-client/avatar`) and watchparty's public character table, which
4
+ * gives each character its portrait and the colour every name cosmetic derives
5
+ * from.
6
+ */
7
+ import { createAvatarClient, AvatarError } from '@wolffm/prefs-client/avatar'
8
+
9
+ export const avatarClient = createAvatarClient({ baseUrl: '/prefs' })
10
+
11
+ /** watchparty's public character table: GET /watchparty/api/characters. */
12
+ const CHARACTERS_URL = '/watchparty/api/characters'
13
+ const WATCHPARTY_BASE = '/watchparty'
14
+
15
+ export interface Character {
16
+ id: string
17
+ name: string
18
+ color: string
19
+ portrait: string
20
+ }
21
+ export interface CharacterSet {
22
+ id: string
23
+ characters: Character[]
24
+ }
25
+
26
+ export async function fetchCharacters(): Promise<CharacterSet[]> {
27
+ const r = await fetch(CHARACTERS_URL)
28
+ if (!r.ok) throw new Error(`Could not load the characters (HTTP ${r.status})`)
29
+ return ((await r.json()) as { sets: CharacterSet[] }).sets
30
+ }
31
+
32
+ export function portraitUrl(c: Character): string {
33
+ return c.portrait.startsWith('/') ? `${WATCHPARTY_BASE}${c.portrait}` : c.portrait
34
+ }
35
+
36
+ /** A failure as the dialog shows it. */
37
+ export function avatarErrorText(err: unknown): string {
38
+ if (err instanceof AvatarError && err.status === 401) return 'Sign in to set an avatar.'
39
+ return err instanceof Error ? err.message : String(err)
40
+ }