@@ -205,9 +205,6 @@ export default function QuiltDetailPage() {
205205 const isModerator = Boolean ( user ?. admin || user ?. mod ) ;
206206 const isEditing = draft . size > 0 || editingSubmissionId !== null ;
207207 const activePreview : CanvasPreview = isEditing ? { type : "current" } : preview ;
208- const ownPendingSubmission = user
209- ? quilt ?. pending . find ( ( submission ) => submission . author . id === user . id ) ?? null
210- : null ;
211208
212209 const loadQuilt = useCallback ( async ( ) => {
213210 if ( ! quiltSlug ) return ;
@@ -677,9 +674,7 @@ export default function QuiltDetailPage() {
677674 < Text color = "textFaded" >
678675 { editingSubmissionId
679676 ? `${ draft . size } pending pixel changes · editing existing submission`
680- : ownPendingSubmission
681- ? "You already have a pending change. Edit it to submit updates."
682- : `${ draft . size } pending pixel changes` }
677+ : `${ draft . size } pending pixel changes` }
683678 </ Text >
684679 < Hstack >
685680 < Button
@@ -699,8 +694,7 @@ export default function QuiltDetailPage() {
699694 disabled = {
700695 ! user ||
701696 draft . size === 0 ||
702- quilt . isEnded ||
703- ( ownPendingSubmission !== null && editingSubmissionId === null )
697+ quilt . isEnded
704698 }
705699 onClick = { submitDraft }
706700 >
@@ -744,6 +738,8 @@ export default function QuiltDetailPage() {
744738 } }
745739 onEdit = { startEditingSubmission }
746740 onVote = { vote }
741+ isModerator = { isModerator }
742+ onRemove = { removeSubmission }
747743 />
748744 < HistoryPanel
749745 title = "Rejected"
@@ -858,17 +854,21 @@ function PendingPanel({
858854 selectedId,
859855 currentUserId,
860856 previewDisabled,
857+ isModerator,
861858 onSelect,
862859 onEdit,
863860 onVote,
861+ onRemove,
864862} : {
865863 submissions : QuiltSubmission [ ] ;
866864 selectedId ?: number | null ;
867865 currentUserId ?: number ;
868866 previewDisabled ?: boolean ;
867+ isModerator ?: boolean ;
869868 onSelect : ( id : number ) => void ;
870869 onEdit : ( submission : QuiltSubmission ) => void ;
871870 onVote : ( id : number , value : 1 | - 1 ) => void ;
871+ onRemove : ( id : number ) => void ;
872872} ) {
873873 return (
874874 < Card >
@@ -949,6 +949,17 @@ function PendingPanel({
949949 >
950950 < ThumbsDown size = { 16 } />
951951 </ button >
952+ { isModerator && (
953+ < Button
954+ size = "sm"
955+ icon = "trash"
956+ variant = "ghost"
957+ onClick = { ( event ) => {
958+ event . stopPropagation ( ) ;
959+ onRemove ( submission . id ) ;
960+ } }
961+ />
962+ ) }
952963 </ Hstack >
953964 </ Hstack >
954965 </ button >
0 commit comments