Fix change name modal story not rendering. Closes #2255

This commit is contained in:
Gabe Kangas 2022-11-06 15:33:21 -08:00
parent d95ad34eee
commit b9f5b1da19
No known key found for this signature in database
GPG Key ID: 9A56337728BC81EA
2 changed files with 31 additions and 9 deletions

View File

@ -1,20 +1,41 @@
import React from 'react';
import React, { useEffect } from 'react';
import { ComponentStory, ComponentMeta } from '@storybook/react';
import { RecoilRoot } from 'recoil';
import { RecoilRoot, useSetRecoilState } from 'recoil';
import { NameChangeModal } from './NameChangeModal';
import { CurrentUser } from '../../../interfaces/current-user';
import { currentUserAtom } from '../../stores/ClientConfigStore';
export default {
title: 'owncast/Modals/Name change',
title: 'owncast/Modals/Name Change',
component: NameChangeModal,
parameters: {},
} as ComponentMeta<typeof NameChangeModal>;
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const Template: ComponentStory<typeof NameChangeModal> = args => (
const Example = () => {
const setCurrentUser = useSetRecoilState<CurrentUser>(currentUserAtom);
useEffect(
() =>
setCurrentUser({
id: '1',
displayName: 'Test User',
displayColor: 3,
isModerator: false,
}),
[],
);
return (
<div>
<NameChangeModal />
</div>
);
};
const Template: ComponentStory<typeof NameChangeModal> = () => (
<RecoilRoot>
<NameChangeModal />
<Example />
</RecoilRoot>
);
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export const Basic = Template.bind({});

View File

@ -23,13 +23,14 @@ const UserColor: FC<UserColorProps> = ({ color }) => {
export const NameChangeModal: FC = () => {
const currentUser = useRecoilValue(currentUserAtom);
const websocketService = useRecoilValue<WebsocketService>(websocketServiceAtom);
const [newName, setNewName] = useState<string>(currentUser?.displayName);
if (!currentUser) {
return null;
}
const { displayName, displayColor } = currentUser;
const websocketService = useRecoilValue<WebsocketService>(websocketServiceAtom);
const [newName, setNewName] = useState<any>(displayName);
const handleNameChange = () => {
const nameChange = {