@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.
- package/dist/components/AvatarBuilder.d.ts +28 -0
- package/dist/components/AvatarBuilder.d.ts.map +1 -0
- package/dist/components/AvatarBuilder.js +731 -0
- package/dist/components/AvatarBuilder.js.map +1 -0
- package/dist/components/AvatarDialog.d.ts +6 -4
- package/dist/components/AvatarDialog.d.ts.map +1 -1
- package/dist/components/AvatarDialog.js +3 -3
- package/dist/components/AvatarDialog.js.map +1 -1
- package/dist/components/AvatarPicker.d.ts +21 -18
- package/dist/components/AvatarPicker.d.ts.map +1 -1
- package/dist/components/AvatarPicker.js +17 -145
- package/dist/components/AvatarPicker.js.map +1 -1
- package/dist/components/ConnectedSettings.d.ts.map +1 -1
- package/dist/components/ConnectedSettings.js +20 -1
- package/dist/components/ConnectedSettings.js.map +1 -1
- package/dist/components/LinkedAccounts.d.ts +21 -0
- package/dist/components/LinkedAccounts.d.ts.map +1 -0
- package/dist/components/LinkedAccounts.js +119 -0
- package/dist/components/LinkedAccounts.js.map +1 -0
- package/dist/lib/avatarData.d.ts +27 -0
- package/dist/lib/avatarData.d.ts.map +1 -0
- package/dist/lib/avatarData.js +23 -0
- package/dist/lib/avatarData.js.map +1 -0
- package/dist/vendor/wolffm/prefs-client/avatar.js +7 -1
- package/dist/vendor/wolffm/prefs-client/avatar.js.map +1 -1
- package/dist/vendor/wolffm/prefs-client/cosmetics.js +491 -0
- package/dist/vendor/wolffm/prefs-client/cosmetics.js.map +1 -0
- package/package.json +2 -2
- package/src/components/AvatarBuilder.tsx +901 -0
- package/src/components/AvatarDialog.tsx +8 -6
- package/src/components/AvatarPicker.tsx +45 -228
- package/src/components/ConnectedSettings.tsx +26 -0
- package/src/components/LinkedAccounts.tsx +176 -0
- 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
|
+
}
|