Add first pass at IndieAuth modal. For #1863

This commit is contained in:
Gabe Kangas
2022-08-20 16:13:31 -07:00
parent c41e0ab90a
commit c4479a0ffc
11 changed files with 258 additions and 15 deletions

View File

@@ -71,6 +71,11 @@ export const chatMessagesAtom = atom<ChatMessage[]>({
default: [] as ChatMessage[],
});
export const chatAuthenticatedAtom = atom<boolean>({
key: 'chatAuthenticatedAtom',
default: false,
});
export const websocketServiceAtom = atom<WebsocketService>({
key: 'websocketServiceAtom',
default: null,
@@ -156,6 +161,7 @@ export function ClientConfigStore() {
const setChatDisplayName = useSetRecoilState<string>(chatDisplayNameAtom);
const setChatDisplayColor = useSetRecoilState<Number>(chatDisplayColorAtom);
const setChatUserId = useSetRecoilState<string>(chatUserIdAtom);
const setChatAuthenticated = useSetRecoilState<boolean>(chatAuthenticatedAtom);
const setIsChatModerator = useSetRecoilState<boolean>(isChatModeratorAtom);
const setClientConfig = useSetRecoilState<ClientConfig>(clientConfigStateAtom);
const setServerStatus = useSetRecoilState<ServerStatus>(serverStatusState);
@@ -265,6 +271,7 @@ export function ClientConfigStore() {
setChatDisplayColor,
setChatUserId,
setIsChatModerator,
setChatAuthenticated,
);
setChatMessages(currentState => [...currentState, message as ChatEvent]);
break;

View File

@@ -6,11 +6,13 @@ export default function handleConnectedClientInfoMessage(
setChatDisplayColor: (number) => void,
setChatUserId: (number) => void,
setIsChatModerator: (boolean) => void,
setChatAuthenticated: (boolean) => void,
) {
const { user } = message;
const { id, displayName, displayColor, scopes } = user;
const { id, displayName, displayColor, scopes, authenticated } = user;
setChatDisplayName(displayName);
setChatDisplayColor(displayColor);
setChatUserId(id);
setIsChatModerator(scopes?.includes('moderator'));
setChatAuthenticated(authenticated);
}