parent
08f97a133e
commit
9d1c2df1a2
@ -1,21 +0,0 @@
|
||||
/**
|
||||
* Group Member normalizer:
|
||||
* Converts API group members into our internal format.
|
||||
*/
|
||||
import { BaseGroupRoles, TruthSocialGroupRoles } from 'soapbox/hooks/useGroupRoles';
|
||||
import { Account } from 'soapbox/types/entities';
|
||||
|
||||
import { normalizeAccount } from './account';
|
||||
|
||||
export interface GroupMember {
|
||||
id: string
|
||||
role: BaseGroupRoles | TruthSocialGroupRoles
|
||||
account: Account | any
|
||||
}
|
||||
|
||||
export const normalizeGroupMember = (groupMember: GroupMember): GroupMember => {
|
||||
return {
|
||||
...groupMember,
|
||||
account: normalizeAccount(groupMember.account),
|
||||
};
|
||||
};
|
@ -0,0 +1,26 @@
|
||||
import z from 'zod';
|
||||
|
||||
enum TruthSocialGroupRoles {
|
||||
ADMIN = 'owner',
|
||||
MODERATOR = 'admin',
|
||||
USER = 'user'
|
||||
}
|
||||
|
||||
enum BaseGroupRoles {
|
||||
ADMIN = 'admin',
|
||||
MODERATOR = 'moderator',
|
||||
USER = 'user'
|
||||
}
|
||||
|
||||
const groupMemberSchema = z.object({
|
||||
id: z.string(),
|
||||
account: z.any(),
|
||||
role: z.union([
|
||||
z.nativeEnum(TruthSocialGroupRoles),
|
||||
z.nativeEnum(BaseGroupRoles),
|
||||
]),
|
||||
});
|
||||
|
||||
type GroupMember = z.infer<typeof groupMemberSchema>;
|
||||
|
||||
export { groupMemberSchema, GroupMember };
|
Loading…
Reference in new issue