Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@
<link rel="icon" type="image/svg+xml" href="/assets/logo.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>행샤</title>
<meta
name="description"
content="서울대학교 교내 행사를 한눈에 모아보는 캘린더 서비스"
/>
<meta property="og:title" content="행샤" />
<meta property="og:description" content="..." />
<meta property="og:url" content="https://hangsha.wafflestudio.com" />
<meta
name="google-site-verification"
content="vN4BTCAW-_S7Oc3eqEP1cQgi3rDjRQmh6ZHSawwF9Ys"
/>
</head>
<body>
<div id="root"></div>
Expand Down
10 changes: 10 additions & 0 deletions public/robots.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
User-agent: *
Allow: /

Disallow: /auth/
Disallow: /sync
Disallow: /my
Disallow: /bookmark
Disallow: /memo

Sitemap: https://hangsha.wafflestudio.com/sitemap.xml
27 changes: 27 additions & 0 deletions public/sitemap.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://hangsha.wafflestudio.com/</loc>
<lastmod>2026-05-18</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://hangsha.wafflestudio.com/main</loc>
<lastmod>2026-05-18</lastmod>
<changefreq>daily</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://hangsha.wafflestudio.com/main/day</loc>
<lastmod>2026-05-18</lastmod>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hangsha.wafflestudio.com/search</loc>
<lastmod>2026-05-18</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
12 changes: 10 additions & 2 deletions src/pages/timetable/TimeTableSidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ export const TimeTableSidebar = ({
const handleTimetableClick = () => {
navigate("/timetable");
};

const handleBookmarkClick = () => {
navigate("/bookmark");
}

const startRename = (tt: Timetable) => {
setNameChangeId(tt.id);
Expand Down Expand Up @@ -202,14 +206,18 @@ export const TimeTableSidebar = ({
/>
<span>캘린더로 돌아가기</span>
</button>
<div className={styles.pageLink}>
<button
type="button"
className={styles.pageLink}
onClick={() => handleBookmarkClick()}
>
<img
className={styles.icon}
src="/assets/bookmark.svg"
alt="bookmark icon"
/>
<span>찜한 행사</span>
</div>
</button>
<button
type="button"
className={styles.pageLink}
Expand Down
30 changes: 23 additions & 7 deletions src/pages/timetable/TimetablePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,19 @@ export default function TimetablePage() {
const [isAddClassPanelOpen, setIsAddClassPanelOpen] = useState(false);
const [isSidebarOpen, setIsSidebarOpen] = useState(true);
const [isTimetableSimplified, setIsTimetableSimplified] = useState(false);
const [isLoginModalOpen, setIsLoginModalOpen] = useState(false);

const handleAddTimetable = async () => {
if (!user) {
setIsLoginModalOpen(true);
return;
}
await createTimetable({
year,
semester,
name: "새 시간표",
});
};

const { user } = useAuth();
const navigate = useNavigate();
Expand Down Expand Up @@ -174,13 +187,7 @@ export default function TimetablePage() {
>
<TimeTableSidebar
timetables={timetables}
onAddTimetable={() =>
createTimetable({
year,
semester,
name: "새 시간표",
})
}
onAddTimetable={handleAddTimetable}
onSelectTimetable={selectTimetable}
onRename={updateTimetableName}
onDelete={deleteTimetable}
Expand Down Expand Up @@ -263,6 +270,15 @@ export default function TimetablePage() {
</div>
}

{isLoginModalOpen && (
<Modal
content={"시간표 추가를 위해서는\n로그인이 필요해요."}
leftText="로그인 ·회원가입 페이지로 이동"
onLeftClick={() => navigate("/")}
onClose={() => setIsLoginModalOpen(false)}
/>
)}

<BottomNav />
</div>
);
Expand Down
Loading