Skip to content

Session Table#102

Open
mirumodapon wants to merge 24 commits into
mainfrom
feat/session-ui
Open

Session Table#102
mirumodapon wants to merge 24 commits into
mainfrom
feat/session-ui

Conversation

@mirumodapon
Copy link
Copy Markdown
Collaborator

No description provided.

@mirumodapon mirumodapon linked an issue Apr 19, 2026 that may be closed by this pull request
@mirumodapon mirumodapon force-pushed the feat/session-data-structure branch from fe9a1d2 to 06256a8 Compare April 25, 2026 09:57
Base automatically changed from feat/session-data-structure to main April 26, 2026 05:55
@rileychh-dokploy-coscup
Copy link
Copy Markdown

rileychh-dokploy-coscup Bot commented Apr 26, 2026

Dokploy Preview Deployment

Name Status Preview Updated (UTC)
Nuxt ✅ Done Preview URL 2026-05-09T15:26:37.615Z

@mirumodapon mirumodapon marked this pull request as ready for review April 26, 2026 06:05
Copilot AI review requested due to automatic review settings April 26, 2026 06:05
@mirumodapon mirumodapon requested a review from rileychh April 26, 2026 06:06
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new “Session Table” UI for browsing sessions by day, including supporting UI components/composables, and aligns toggle behavior with VueUse.

Changes:

  • Introduce /session page with day selector + grid-based session table and session cards.
  • Add shared UI primitives (CpButton, CpBadge, CpMenu) and a useDragScroll composable for horizontal drag scrolling.
  • Update Pretalx map typing to support both string and numeric keys; remove custom useToggle in favor of @vueuse/core.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
shared/types/pretalx.ts Broaden PretalxData map key type to `string
app/pages/session/index.vue New session index page wiring fetch + selector + table.
app/composables/useToggle.ts Removed custom toggle composable (replaced by VueUse).
app/composables/useDragScroll.ts New composable enabling pointer-drag scrolling behavior.
app/components/shared/CpPopup.vue Switch to VueUse useToggle; adjust click handling.
app/components/shared/CpMenu.vue New menu component using click-outside + VueUse toggle.
app/components/shared/CpButton.vue New shared button/link component with variants/sizes.
app/components/shared/CpBadge.vue New badge component.
app/components/feature/CpSessionTable.vue New grid-based session schedule table with drag scroll.
app/components/feature/CpSessionItem.vue New session card used inside the table.
app/components/feature/CpSessionInfoCard.vue New session detail info card with local i18n strings.
app/components/feature/CpSessionDaySelector.vue New day selector component used by session index page.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/components/feature/CpSessionInfoCard.vue Outdated
Comment thread app/composables/useDragScroll.ts
Comment thread app/components/feature/CpSessionTable.vue Outdated
Comment thread app/components/feature/CpSessionTable.vue
Comment thread app/pages/session/index.vue Outdated
Comment thread app/components/shared/CpButton.vue Outdated
Comment thread app/components/feature/CpSessionItem.vue Outdated
Comment thread app/pages/session/index.vue Outdated
Comment thread app/pages/session/index.vue Outdated
Comment thread app/components/feature/CpSessionTable.vue Outdated
Comment thread app/components/feature/CpSessionTable.vue
Comment thread app/components/feature/CpSessionItem.vue Outdated
Comment thread app/components/shared/CpButton.vue Outdated
Comment thread app/components/shared/CpMenu.vue Outdated
Comment thread app/components/feature/CpSessionInfoCard.vue Outdated
Comment thread app/components/feature/CpSessionDaySelector.vue Outdated
Comment thread app/components/feature/CpSessionTable.vue Outdated
@mirumodapon mirumodapon force-pushed the feat/session-ui branch 2 times, most recently from 08bda83 to 7c6b7d1 Compare May 1, 2026 07:19
@mirumodapon mirumodapon requested a review from rileychh May 1, 2026 07:22
Copy link
Copy Markdown
Member

@rileychh rileychh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

還有一些問題還沒討論完:

  • CpSessionTable 時間解析為什麼不用 Date / Temporal
  • CpSessionTable time label 的 +6 magic number

@mirumodapon
Copy link
Copy Markdown
Collaborator Author

mirumodapon commented May 9, 2026

還有一些問題還沒討論完:

  • CpSessionTable 時間解析為什麼不用 Date / Temporal
  • CpSessionTable time label 的 +6 magic number

關於是否使用 Temporal 我這邊想提出討論:

  1. 目前 Temporal 的提案進行到 stage 4,應該是明年才會正式進入 esma 的標準 ref
  2. 另外,safari(jsc) 還沒實作 ref1 ref2
  3. Node26 上禮拜才 release ,在我們支援版本提升之前,我們需要做更多的測試確認多方依賴不會爆炸(這包含 ci 是否已經有該版本可以使用)
  "engines": {
    "node": ">=24.0.0"
  },

Comment thread app/components/feature/CpSessionTable.vue
Comment thread app/pages/session/index.vue Outdated
Copy link
Copy Markdown
Member

@rileychh rileychh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

關於是否使用 Temporal 我這邊想提出討論

You're absolutely right 想了一下,這裡用 regex 其實是對的。我們只是要取出 ISO date 裡面的時間部分,不是表示某個時刻。為了避免遇到時區問題,還是用現在的做法就好。我把前面的留言 resolve 了。

Comment thread app/components/feature/CpSessionTable.vue
@mirumodapon mirumodapon requested a review from rileychh May 10, 2026 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

議程主表

4 participants