@@ -12,7 +12,8 @@ function QueueAdminPage() {
1212 const [ items , setItems ] = useState ( [ ] ) ;
1313 const [ page , setPage ] = useState ( 1 ) ;
1414 const [ pages , setPages ] = useState ( 1 ) ;
15- const { getpageimages, deletequeueitem, toggleapproval } = useAuth ( ) ;
15+ const [ total , setTotal ] = useState ( 0 ) ;
16+ const { getpageimages, deletequeueitem, toggleapproval, updateorder } = useAuth ( ) ;
1617
1718 const [ modalState , setModalState ] = useState ( {
1819 isOpen : false ,
@@ -54,6 +55,7 @@ function QueueAdminPage() {
5455 setItems ( transformed ) ;
5556 setPage ( data . page ) ;
5657 setPages ( data . pages ) ;
58+ setTotal ( data . total )
5759 } catch ( err ) {
5860 console . error ( "Failed to load queue images:" , err ) ;
5961 }
@@ -72,6 +74,15 @@ function QueueAdminPage() {
7274 }
7375 } ;
7476
77+ const handleOrderUpdate = async ( queueId , newOrder ) => {
78+ try {
79+ await updateorder ( queueId , newOrder ) ;
80+ fetchImages ( page ) ;
81+ } catch ( err ) {
82+ console . error ( "Order update failed:" , err ) ;
83+ }
84+ } ;
85+
7586 const handleToggleApproval = async ( designId , isApproved ) => {
7687 try {
7788 await toggleapproval ( designId , ! isApproved ) ;
@@ -122,7 +133,22 @@ function QueueAdminPage() {
122133 < strong > Scheduled at:</ strong > { formatDateTime ( item ?. start_time ) || 'Unscheduled' }
123134 </ div >
124135 < div className = "text-base" >
125- < strong > Order:</ strong > { item . display_order }
136+ < strong > Order:</ strong > { " " }
137+ < select
138+ value = { item . display_order }
139+ onChange = { ( e ) =>
140+ showConfirm (
141+ `Move item to position ${ e . target . value } ?` ,
142+ ( ) => handleOrderUpdate ( item . queue_id , Number ( e . target . value ) )
143+ )
144+ }
145+ >
146+ { Array . from ( { length : total } ) . map ( ( _ , idx ) => (
147+ < option key = { idx + 1 } value = { idx + 1 } >
148+ { idx + 1 }
149+ </ option >
150+ ) ) }
151+ </ select >
126152 </ div >
127153 </ div >
128154 < div className = "user-buttons" >
0 commit comments