diff --git a/src/pages/subscription/Subscription.css b/src/pages/subscription/Subscription.css index 66fc202..aa83260 100644 --- a/src/pages/subscription/Subscription.css +++ b/src/pages/subscription/Subscription.css @@ -1161,4 +1161,20 @@ .sub-tabs-bar { flex-direction: column; align-items: flex-start; } .sub-sched-row { grid-template-columns: 90px 10px 1fr; gap: 0 10px; } .sub-compare__row { grid-template-columns: 70px 1fr 1fr 16px; } + + /* 공고 카드 1컬럼 */ + .sub-card-grid { + grid-template-columns: 1fr; + } + + /* 탭 가로 스크롤 */ + .sub-tabs { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + + .sub-tabs > * { + flex-shrink: 0; + white-space: nowrap; + } } diff --git a/src/pages/subscription/Subscription.jsx b/src/pages/subscription/Subscription.jsx index 3179ac6..75dd36e 100644 --- a/src/pages/subscription/Subscription.jsx +++ b/src/pages/subscription/Subscription.jsx @@ -1,6 +1,10 @@ -import React, { useState, useEffect, useMemo } from 'react'; +import React, { useState, useEffect, useMemo, useCallback } from 'react'; import { Link } from 'react-router-dom'; import { apiGet, apiPost, apiPut, apiDelete } from '../../api'; +import { useIsMobile } from '../../hooks/useIsMobile'; +import PullToRefresh from '../../components/PullToRefresh'; +import FAB from '../../components/FAB'; +import MobileSheet from '../../components/MobileSheet'; import './Subscription.css'; // ── 상수 ─────────────────────────────────────────────────────────────────────── @@ -1296,9 +1300,21 @@ function ProfileTab() { // ── Subscription (Main) ────────────────────────────────────────────────────── function Subscription() { + const isMobile = useIsMobile(); const [activeTab, setActiveTab] = useState(0); + const [filterSheetOpen, setFilterSheetOpen] = useState(false); + + const handleFABClick = useCallback(() => { + if (activeTab === 0) { + // DashboardTab — open filter sheet or scroll to collect + setFilterSheetOpen(true); + } else { + setFilterSheetOpen(true); + } + }, [activeTab]); return ( + {}, [])}>
{/* Header */}
@@ -1333,7 +1349,39 @@ function Subscription() { {activeTab === 2 && } {activeTab === 3 && }
+ + setFilterSheetOpen(false)} + title="필터" + snap="half" + > +
+

+ 탭을 선택하여 원하는 화면으로 이동하세요. +

+ {TABS.map((tab, i) => ( + + ))} +
+
+ +
+
); }