@@ -29,6 +29,7 @@ import {
2929 arrayMove ,
3030} from "@dnd-kit/sortable" ;
3131import SortableCardButton from "@/components/button/SortableCardButton" ;
32+ import { dashboardOrdersTable } from "@/lib/dashboardOrderDB" ;
3233
3334interface Dashboard {
3435 id : number ;
@@ -57,7 +58,7 @@ export default function MyDashboardPage() {
5758 const [ isDeleteModalOpen , setIsDeleteModalOpen ] = useState ( false ) ;
5859 const [ isConfirmDeleteModalOpen , setIsConfirmDeleteModalOpen ] =
5960 useState ( false ) ;
60- const itemsPerPage = 6 ; // 버튼 포함 6개
61+ const itemsPerPage = 6 ;
6162
6263 const sensors = useSensors (
6364 useSensor ( PointerSensor , {
@@ -81,7 +82,18 @@ export default function MyDashboardPage() {
8182 const fetchDashboards = async ( ) => {
8283 try {
8384 const res = await getDashboards ( { } ) ;
84- setDashboardList ( res . dashboards ) ;
85+ const localOrder = await dashboardOrdersTable . get ( TEAM_ID ) ;
86+
87+ let orderedList = res . dashboards ;
88+ if ( localOrder ?. order ) {
89+ orderedList = res . dashboards
90+ . slice ( )
91+ . sort (
92+ ( a , b ) =>
93+ localOrder . order . indexOf ( a . id ) - localOrder . order . indexOf ( b . id )
94+ ) ;
95+ }
96+ setDashboardList ( orderedList ) ;
8597 } catch ( error ) {
8698 console . error ( "대시보드 불러오기 실패:" , error ) ;
8799 }
@@ -122,7 +134,7 @@ export default function MyDashboardPage() {
122134 setSelectedDashboardId ( null ) ;
123135 } ;
124136
125- const handleDragEnd = ( event : DragEndEvent ) => {
137+ const handleDragEnd = async ( event : DragEndEvent ) => {
126138 const { active, over } = event ;
127139 if ( ! over || active . id === over . id ) return ;
128140
@@ -131,6 +143,12 @@ export default function MyDashboardPage() {
131143
132144 const newOrder = arrayMove ( dashboardList , oldIndex , newIndex ) ;
133145 setDashboardList ( newOrder ) ;
146+
147+ //D&D 로컬 순서 저장
148+ await dashboardOrdersTable . put ( {
149+ teamId : TEAM_ID ,
150+ order : newOrder . map ( ( d ) => d . id ) ,
151+ } ) ;
134152 } ;
135153
136154 if ( ! isInitialized || ! user ) {
0 commit comments