Skip to content

Commit 1693c5b

Browse files
author
prettifier[bot]
authored
Format d89b854
1 parent d89b854 commit 1693c5b

File tree

3 files changed

+56
-46
lines changed

3 files changed

+56
-46
lines changed

src/components/Groups/GroupPage/Feed.tsx

+47-32
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { useState, useEffect } from 'react';
22
import {
33
closestCenter,
4-
DndContext,
4+
DndContext,
55
DragOverlay,
66
KeyboardSensor,
77
PointerSensor,
@@ -90,11 +90,14 @@ export default function Feed(): JSX.Element {
9090
// Note: There's a small bug here and in PostProblems.tsx
9191
// where immediately after creating a new post the post ordering and post length will be off...
9292
setItems(
93-
group.posts.filter(post => {
93+
group.posts
94+
.filter(post => {
9495
if (!group.showAdminView && !post.isPublished) return false;
9596
if (currentFeed === 'all') return true;
96-
if (currentFeed === 'assignments') return post.type === 'assignment';
97-
if (currentFeed === 'announcements') return post.type === 'announcement';
97+
if (currentFeed === 'assignments')
98+
return post.type === 'assignment';
99+
if (currentFeed === 'announcements')
100+
return post.type === 'announcement';
98101
throw 'unknown feed ' + this.currentFeed;
99102
})
100103
.sort(sortPostsComparator)
@@ -105,29 +108,29 @@ export default function Feed(): JSX.Element {
105108
setItems(group.groupData.postOrdering);
106109
}
107110
}, [group.groupData?.postOrdering, group.posts]);
108-
109-
const handleDragStart = (event) => {
110-
const {active} = event;
111-
111+
112+
const handleDragStart = event => {
113+
const { active } = event;
114+
112115
setActiveId(active.id);
113-
}
114-
115-
const handleDragEnd = (event) => {
116-
const {active, over} = event;
117-
116+
};
117+
118+
const handleDragEnd = event => {
119+
const { active, over } = event;
120+
118121
if (active.id !== over.id) {
119-
setItems((items) => {
122+
setItems(items => {
120123
const oldIndex = items.indexOf(active.id);
121124
const newIndex = items.indexOf(over.id);
122-
125+
123126
const newArr = arrayMove(items, oldIndex, newIndex);
124127
updatePostOrdering(group.activeGroupId, newArr);
125128
return newArr;
126129
});
127130
}
128-
131+
129132
setActiveId(null);
130-
}
133+
};
131134

132135
return (
133136
<>
@@ -147,38 +150,50 @@ export default function Feed(): JSX.Element {
147150
{group.isLoading && 'Loading posts...'}
148151
{!group.isLoading &&
149152
(group.showAdminView ? (
150-
<DndContext
153+
<DndContext
151154
sensors={sensors}
152155
collisionDetection={closestCenter}
153156
onDragStart={handleDragStart}
154157
onDragEnd={handleDragEnd}
155158
>
156-
<SortableContext
159+
<SortableContext
157160
items={items}
158161
strategy={verticalListSortingStrategy}
159162
>
160163
<div className="divide-y divide-solid divide-gray-200 dark:divide-gray-600 sm:divide-none sm:space-y-4">
161-
{items.map(id => <SortableItem key={id} id={id} group={group.groupData} post={group.posts.find(x => x.id === id)} isBeingDragged={activeId === id} />)}
164+
{items.map(id => (
165+
<SortableItem
166+
key={id}
167+
id={id}
168+
group={group.groupData}
169+
post={group.posts.find(x => x.id === id)}
170+
isBeingDragged={activeId === id}
171+
/>
172+
))}
162173
</div>
163174
</SortableContext>
164175
<DragOverlay>
165-
{activeId ? <FeedItem
166-
group={group.groupData}
167-
post={group.posts.find(x => x.id === activeId)}
168-
dragHandle={(
169-
<div
170-
className="self-stretch flex items-center px-2"
171-
>
172-
<MenuIcon className="h-5 w-5 text-gray-300" />
173-
</div>
174-
)}
175-
/> : null}
176+
{activeId ? (
177+
<FeedItem
178+
group={group.groupData}
179+
post={group.posts.find(x => x.id === activeId)}
180+
dragHandle={
181+
<div className="self-stretch flex items-center px-2">
182+
<MenuIcon className="h-5 w-5 text-gray-300" />
183+
</div>
184+
}
185+
/>
186+
) : null}
176187
</DragOverlay>
177188
</DndContext>
178189
) : (
179190
<div className="divide-y divide-solid divide-gray-200 dark:divide-gray-600 sm:divide-none sm:space-y-4">
180191
{items.map(id => (
181-
<FeedItem group={group.groupData} post={group.posts.find(x => x.id === id)} key={id} />
192+
<FeedItem
193+
group={group.groupData}
194+
post={group.posts.find(x => x.id === id)}
195+
key={id}
196+
/>
182197
))}
183198
</div>
184199
))}

src/hooks/groups/useGroupActions.ts

+4-10
Original file line numberDiff line numberDiff line change
@@ -162,16 +162,10 @@ export function useGroupActions() {
162162
data
163163
);
164164
},
165-
updatePostOrdering: async (
166-
groupId: string,
167-
ordering: string[]
168-
) => {
169-
await updateDoc(
170-
doc(getFirestore(firebaseApp), 'groups', groupId),
171-
{
172-
postOrdering: ordering
173-
}
174-
);
165+
updatePostOrdering: async (groupId: string, ordering: string[]) => {
166+
await updateDoc(doc(getFirestore(firebaseApp), 'groups', groupId), {
167+
postOrdering: ordering,
168+
});
175169
},
176170
removeMemberFromGroup: async (
177171
groupId: string,

src/hooks/groups/usePostActions.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ import { useFirebaseApp } from '../useFirebase';
2222

2323
export function usePostActions(groupId: string) {
2424
const firebaseApp = useFirebaseApp();
25-
const { firebaseUser, setUserProgressOnProblems } =
26-
useContext(UserDataContext);
25+
const { firebaseUser, setUserProgressOnProblems } = useContext(
26+
UserDataContext
27+
);
2728

2829
const updatePost = async (postId: string, updatedData: Partial<PostData>) => {
2930
await updateDoc(
@@ -70,7 +71,7 @@ export function usePostActions(groupId: string) {
7071
});
7172
batch.update(doc(firestore, 'groups', groupId), {
7273
[`leaderboard.${postId}`]: deleteField(),
73-
"postOrdering": arrayRemove(postId),
74+
postOrdering: arrayRemove(postId),
7475
});
7576
return batch.commit();
7677
},
@@ -167,7 +168,7 @@ export function usePostActions(groupId: string) {
167168
});
168169
batch.update(doc(firestore, 'groups', groupId, 'posts', post.id), {
169170
[`pointsPerProblem.${problemId}`]: deleteField(),
170-
"problemOrdering": arrayRemove(problemId)
171+
problemOrdering: arrayRemove(problemId),
171172
});
172173
await batch.commit();
173174
},

0 commit comments

Comments
 (0)