Skip to content

Commit d0d78f7

Browse files
author
prettifier[bot]
authored
Format 18132a8
1 parent 18132a8 commit d0d78f7

File tree

13 files changed

+389
-389
lines changed

13 files changed

+389
-389
lines changed

root-wrapper.tsx

+30-30
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
import React from 'react';
2-
import { Toaster } from "react-hot-toast";
3-
import { DarkModeProvider } from './src/context/DarkModeProvider';
4-
import { EditorContext } from './src/context/EditorContext';
5-
import { FirebaseProvider } from './src/context/FirebaseContext';
6-
import GlobalErrorBoundary from './src/context/GlobalErrorBoundary';
7-
import { SignInProvider } from './src/context/SignInContext';
8-
import { UserDataProvider } from './src/context/UserDataContext/UserDataContext';
9-
import { UserGroupsProvider } from './src/hooks/groups/useUserGroups';
10-
11-
export const wrapRootElement = ({ element }): JSX.Element => (
12-
<>
13-
<GlobalErrorBoundary>
14-
<FirebaseProvider>
15-
<UserDataProvider>
16-
<DarkModeProvider>
17-
<SignInProvider>
18-
<UserGroupsProvider>
19-
<EditorContext.Provider value={{ inEditor: false }}>
20-
{element}
21-
</EditorContext.Provider>
22-
</UserGroupsProvider>
23-
</SignInProvider>
24-
</DarkModeProvider>
25-
</UserDataProvider>
26-
</FirebaseProvider>
27-
</GlobalErrorBoundary>
28-
<Toaster position="top-right" />
29-
</>
30-
);
1+
import React from 'react';
2+
import { Toaster } from 'react-hot-toast';
3+
import { DarkModeProvider } from './src/context/DarkModeProvider';
4+
import { EditorContext } from './src/context/EditorContext';
5+
import { FirebaseProvider } from './src/context/FirebaseContext';
6+
import GlobalErrorBoundary from './src/context/GlobalErrorBoundary';
7+
import { SignInProvider } from './src/context/SignInContext';
8+
import { UserDataProvider } from './src/context/UserDataContext/UserDataContext';
9+
import { UserGroupsProvider } from './src/hooks/groups/useUserGroups';
10+
11+
export const wrapRootElement = ({ element }): JSX.Element => (
12+
<>
13+
<GlobalErrorBoundary>
14+
<FirebaseProvider>
15+
<UserDataProvider>
16+
<DarkModeProvider>
17+
<SignInProvider>
18+
<UserGroupsProvider>
19+
<EditorContext.Provider value={{ inEditor: false }}>
20+
{element}
21+
</EditorContext.Provider>
22+
</UserGroupsProvider>
23+
</SignInProvider>
24+
</DarkModeProvider>
25+
</UserDataProvider>
26+
</FirebaseProvider>
27+
</GlobalErrorBoundary>
28+
<Toaster position="top-right" />
29+
</>
30+
);

src/components/Groups/EditGroupPage/EditGroupPage.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Link, navigate } from 'gatsby';
2-
import React from 'react';
2+
import React from 'react';
33
import { useReducer } from 'react';
44
import { useActiveGroup } from '../../../hooks/groups/useActiveGroup';
55
import { useGroupActions } from '../../../hooks/groups/useGroupActions';
@@ -8,7 +8,7 @@ import Layout from '../../layout';
88
import SEO from '../../seo';
99
import TopNavigationBar from '../../TopNavigationBar/TopNavigationBar';
1010
import Breadcrumbs from '../Breadcrumbs';
11-
import toast from "react-hot-toast";
11+
import toast from 'react-hot-toast';
1212

1313
export default function EditGroupPage(props) {
1414
const { groupId } = props as {

src/components/Groups/EditPostPage/EditPostPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import Flatpickr from 'react-flatpickr';
77
import { useActiveGroup } from '../../../hooks/groups/useActiveGroup';
88
import { usePost } from '../../../hooks/groups/usePost';
99
import { usePostActions } from '../../../hooks/groups/usePostActions';
10-
import toast from "react-hot-toast";
10+
import toast from 'react-hot-toast';
1111
import { PostData } from '../../../models/groups/posts';
1212
import Layout from '../../layout';
1313
import SEO from '../../seo';

src/components/Groups/EditProblemPage/EditProblemPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import TopNavigationBar from '../../TopNavigationBar/TopNavigationBar';
3131
import Breadcrumbs from '../Breadcrumbs';
3232
import MarkdownEditor from '../MarkdownEditor';
3333
import EditProblemHintSection from './EditProblemHintSection';
34-
import toast from "react-hot-toast";
34+
import toast from 'react-hot-toast';
3535

3636
export default function EditProblemPage(props) {
3737
const { groupId, postId, problemId } = props as {

src/components/Groups/Feedback.tsx

+106-106
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,106 @@
1-
import classNames from 'classnames';
2-
import React, { useState } from 'react';
3-
import toast from 'react-hot-toast';
4-
5-
export default function Feedback(): JSX.Element {
6-
const baseClasses =
7-
'rounded-full border h-8 w-8 text-xl transform transition focus:outline-none';
8-
const unselectedClasses = 'hover:scale-110 border-gray-200';
9-
const selectedClasses = 'scale-110 border-teal-600';
10-
11-
const [selected, setSelected] = useState<
12-
'terrible' | 'bad' | 'good' | 'great' | null
13-
>(null);
14-
15-
const submitFeedback = feedback => {
16-
if (selected === feedback) {
17-
setSelected(null);
18-
// todo reset feedback
19-
} else {
20-
toast.promise(
21-
(() =>
22-
new Promise(resolve => {
23-
// todo save feedback
24-
setTimeout(resolve, 100);
25-
}))(),
26-
{
27-
loading: 'Submitting...',
28-
success: 'Thanks for the feedback!',
29-
error: 'Error submitting feedback.',
30-
}
31-
);
32-
setSelected(feedback);
33-
}
34-
};
35-
36-
return (
37-
<>
38-
<div className="text-center">
39-
<div className="font-medium">How was the video?</div>
40-
<span className="flex items-center space-x-2 justify-center">
41-
<button
42-
type="button"
43-
title={'Rate video as Terrible'}
44-
className={classNames(
45-
baseClasses,
46-
selected === 'terrible' ? selectedClasses : unselectedClasses
47-
)}
48-
onClick={() => submitFeedback('terrible')}
49-
>
50-
😨
51-
</button>
52-
<button
53-
type="button"
54-
title={'Rate video as Bad'}
55-
className={classNames(
56-
baseClasses,
57-
selected === 'bad' ? selectedClasses : unselectedClasses
58-
)}
59-
onClick={() => submitFeedback('bad')}
60-
>
61-
🤨
62-
</button>
63-
<button
64-
type="button"
65-
title={'Rate video as Good'}
66-
className={classNames(
67-
baseClasses,
68-
selected === 'good' ? selectedClasses : unselectedClasses
69-
)}
70-
onClick={() => submitFeedback('good')}
71-
>
72-
😀
73-
</button>
74-
<button
75-
title={'Rate video as Great'}
76-
type="button"
77-
className={classNames(
78-
baseClasses,
79-
selected === 'great' ? selectedClasses : unselectedClasses
80-
)}
81-
onClick={() => submitFeedback('great')}
82-
>
83-
😍
84-
</button>
85-
</span>
86-
</div>
87-
<div className="h-4" />
88-
{selected !== null && (
89-
<>
90-
<textarea
91-
required
92-
className="text-sm w-full mt-4 px-2 py-2 placeholder-gray-500 focus:ring-teal-500 focus:border-teal-500 border-gray-300 rounded-md mr-2"
93-
placeholder="Give Additional Video Feedback"
94-
/>
95-
96-
<button
97-
type="submit"
98-
className="items-center mt-2 sm:mt-0 px-3 py-2 rounded-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-teal-500 focus:border-teal-500"
99-
>
100-
Submit Additional Feedback
101-
</button>
102-
</>
103-
)}
104-
</>
105-
);
106-
}
1+
import classNames from 'classnames';
2+
import React, { useState } from 'react';
3+
import toast from 'react-hot-toast';
4+
5+
export default function Feedback(): JSX.Element {
6+
const baseClasses =
7+
'rounded-full border h-8 w-8 text-xl transform transition focus:outline-none';
8+
const unselectedClasses = 'hover:scale-110 border-gray-200';
9+
const selectedClasses = 'scale-110 border-teal-600';
10+
11+
const [selected, setSelected] = useState<
12+
'terrible' | 'bad' | 'good' | 'great' | null
13+
>(null);
14+
15+
const submitFeedback = feedback => {
16+
if (selected === feedback) {
17+
setSelected(null);
18+
// todo reset feedback
19+
} else {
20+
toast.promise(
21+
(() =>
22+
new Promise(resolve => {
23+
// todo save feedback
24+
setTimeout(resolve, 100);
25+
}))(),
26+
{
27+
loading: 'Submitting...',
28+
success: 'Thanks for the feedback!',
29+
error: 'Error submitting feedback.',
30+
}
31+
);
32+
setSelected(feedback);
33+
}
34+
};
35+
36+
return (
37+
<>
38+
<div className="text-center">
39+
<div className="font-medium">How was the video?</div>
40+
<span className="flex items-center space-x-2 justify-center">
41+
<button
42+
type="button"
43+
title={'Rate video as Terrible'}
44+
className={classNames(
45+
baseClasses,
46+
selected === 'terrible' ? selectedClasses : unselectedClasses
47+
)}
48+
onClick={() => submitFeedback('terrible')}
49+
>
50+
😨
51+
</button>
52+
<button
53+
type="button"
54+
title={'Rate video as Bad'}
55+
className={classNames(
56+
baseClasses,
57+
selected === 'bad' ? selectedClasses : unselectedClasses
58+
)}
59+
onClick={() => submitFeedback('bad')}
60+
>
61+
🤨
62+
</button>
63+
<button
64+
type="button"
65+
title={'Rate video as Good'}
66+
className={classNames(
67+
baseClasses,
68+
selected === 'good' ? selectedClasses : unselectedClasses
69+
)}
70+
onClick={() => submitFeedback('good')}
71+
>
72+
😀
73+
</button>
74+
<button
75+
title={'Rate video as Great'}
76+
type="button"
77+
className={classNames(
78+
baseClasses,
79+
selected === 'great' ? selectedClasses : unselectedClasses
80+
)}
81+
onClick={() => submitFeedback('great')}
82+
>
83+
😍
84+
</button>
85+
</span>
86+
</div>
87+
<div className="h-4" />
88+
{selected !== null && (
89+
<>
90+
<textarea
91+
required
92+
className="text-sm w-full mt-4 px-2 py-2 placeholder-gray-500 focus:ring-teal-500 focus:border-teal-500 border-gray-300 rounded-md mr-2"
93+
placeholder="Give Additional Video Feedback"
94+
/>
95+
96+
<button
97+
type="submit"
98+
className="items-center mt-2 sm:mt-0 px-3 py-2 rounded-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-teal-500 focus:border-teal-500"
99+
>
100+
Submit Additional Feedback
101+
</button>
102+
</>
103+
)}
104+
</>
105+
);
106+
}

src/components/Groups/GroupPage/FeedItem.tsx

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { CheckIcon, ClipboardListIcon } from '@heroicons/react/outline';
33
import { BookmarkIcon } from '@heroicons/react/solid';
44
import { Link } from 'gatsby';
55
import React, { useState } from 'react';
6-
import toast from "react-hot-toast";
6+
import toast from 'react-hot-toast';
77
import { useActiveGroup } from '../../../hooks/groups/useActiveGroup';
88
import { usePostActions } from '../../../hooks/groups/usePostActions';
99
import { GroupData } from '../../../models/groups/groups';
@@ -216,9 +216,7 @@ export default function FeedItem({
216216
if (
217217
confirm('Are you sure you want to delete this post?')
218218
) {
219-
deletePost(post.id).catch(e =>
220-
toast.error(e.message)
221-
);
219+
deletePost(post.id).catch(e => toast.error(e.message));
222220
}
223221
}}
224222
className="w-full flex px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900"

src/components/Groups/ProblemPage/ProblemPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import dayjs from 'dayjs';
22
import { Link, navigate } from 'gatsby';
33
import React from 'react';
4-
import toast from "react-hot-toast";
4+
import toast from 'react-hot-toast';
55
import { useActiveGroup } from '../../../hooks/groups/useActiveGroup';
66
import { usePost } from '../../../hooks/groups/usePost';
77
import { usePostActions } from '../../../hooks/groups/usePostActions';

src/components/Settings/AdminSettings.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { getFunctions, httpsCallable } from 'firebase/functions';
22
import React from 'react';
3-
import toast from "react-hot-toast";
3+
import toast from 'react-hot-toast';
44
import { unstable_batchedUpdates } from 'react-dom';
55
import {
66
UserPermissionInformation,
@@ -82,8 +82,8 @@ export default function AdminSettings() {
8282
toast(
8383
'Updated user permissions! The target user may have to sign out and sign back in to complete the changes.',
8484
{
85-
duration: 6000
86-
},
85+
duration: 6000,
86+
}
8787
);
8888
handleSearch(null);
8989
} catch (e) {

src/context/UserDataContext/UserDataContext.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import UserProgressOnProblemsProperty, {
3232
} from './properties/userProgressOnProblems';
3333
import UserDataPropertyAPI from './userDataPropertyAPI';
3434
import { UserPermissionsContextProvider } from './UserPermissionsContext';
35-
import toast from "react-hot-toast";
35+
import toast from 'react-hot-toast';
3636

3737
// Object for counting online users
3838
// var Gathering = (function () {

0 commit comments

Comments
 (0)