mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
1import {
2 type InterpretedLabelValueDefinition,
3 type LabelPreference,
4} from '@atproto/api'
5import {msg} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
7
8export function useLabelBehaviorDescription(
9 labelValueDef: InterpretedLabelValueDefinition,
10 pref: LabelPreference,
11) {
12 const {_} = useLingui()
13 if (pref === 'ignore') {
14 return _(msg`Off`)
15 }
16 if (labelValueDef.blurs === 'content' || labelValueDef.blurs === 'media') {
17 if (pref === 'hide') {
18 return _(msg`Hide`)
19 }
20 return _(msg`Warn`)
21 } else if (labelValueDef.severity === 'alert') {
22 if (pref === 'hide') {
23 return _(msg`Hide`)
24 }
25 return _(msg`Warn`)
26 } else if (labelValueDef.severity === 'inform') {
27 if (pref === 'hide') {
28 return _(msg`Hide`)
29 }
30 return _(msg`Show badge`)
31 } else {
32 if (pref === 'hide') {
33 return _(msg`Hide`)
34 }
35 return _(msg`Disabled`)
36 }
37}
38
39export function useLabelLongBehaviorDescription(
40 labelValueDef: InterpretedLabelValueDefinition,
41 pref: LabelPreference,
42) {
43 const {_} = useLingui()
44 if (pref === 'ignore') {
45 return _(msg`Disabled`)
46 }
47 if (labelValueDef.blurs === 'content') {
48 if (pref === 'hide') {
49 return _(msg`Warn content and filter from feeds`)
50 }
51 return _(msg`Warn content`)
52 } else if (labelValueDef.blurs === 'media') {
53 if (pref === 'hide') {
54 return _(msg`Blur images and filter from feeds`)
55 }
56 return _(msg`Blur images`)
57 } else if (labelValueDef.severity === 'alert') {
58 if (pref === 'hide') {
59 return _(msg`Show warning and filter from feeds`)
60 }
61 return _(msg`Show warning`)
62 } else if (labelValueDef.severity === 'inform') {
63 if (pref === 'hide') {
64 return _(msg`Show badge and filter from feeds`)
65 }
66 return _(msg`Show badge`)
67 } else {
68 if (pref === 'hide') {
69 return _(msg`Filter from feeds`)
70 }
71 return _(msg`Disabled`)
72 }
73}