Skip to content

Polish Task Workspace UX: XOR link select, id chip, Portal tokens - #38

Merged
sandervonk merged 1 commit into
mainfrom
cursor/task-workspace-ux-pass-07ca
Sep 8, 2026
Merged

sandervonk merged 1 commit into
mainfrom
cursor/task-workspace-ux-pass-07ca

Conversation

@sandervonk

Copy link
Copy Markdown
Member

Summary

High-quality UX + styling pass for Task Workspace on top of #37:

  • Section label is exactly Workspace: (same chrome for teacher and student)
  • Empty state shows short Enable / Link buttons; Link XOR-replaces the row with an Add Class–style styled_input select (no raw workspace ID text field)
  • Link options come from board tasks with workspace_id, deduped by id, labeled by task name (class · task when available) via new linkableWorkspaces prop from ViewTask
  • Link mode dismisses with back_action / click_escape and confirms with continue_action
  • Active workspace shows only a compact id chip (hyperlinked to Drive folder URL when drive_folder_url / drive_folder_id is present)
  • XOR chrome: empty actions, link picker, or dropzone + files + footer (Destroy only; Connect Drive as quiet button_pointer_text)
  • File rows keep fixed icon size, ellipsis names, meta, and remove icon

Files

  • src/components/Portal/TaskWorkspace.vue — template/state/styling overhaul
  • src/common/workspace.ts — LinkableWorkspace, linkableWorkspaceLabel, workspaceDriveFolderUrl, drive folder fields
  • src/views/Portal/ViewTask.vue — linkableWorkspaces computed + prop wiring

Test plan

  • npm run lint
  • npm run build
  • Manual: empty workspace → Enable / Link buttons only
  • Manual: Link → select picker with Back + Link actions (no text input)
  • Manual: active workspace → id chip + dropzone + files + Destroy footer
Open in Web Open in Cursor 

- Label section exactly Workspace: for teacher and student
- Empty state uses short Enable/Link buttons; link mode swaps in Add Class-style select
- Dedupe linkable workspaces by workspace_id from board tasks via ViewTask parent prop
- Active header is a compact workspace id chip linked to Drive folder URL when available
- XOR chrome: empty actions, link picker, or dropzone/files/footer (Destroy only in footer)
- Connect Drive uses quiet button_pointer_text; reuse Portal action tokens throughout

Co-authored-by: Sander Vonk <sandervonk@users.noreply.github.com>
@sandervonk
sandervonk marked this pull request as ready for review September 8, 2026 19:21
@sandervonk
sandervonk merged commit 9f49b43 into main Sep 8, 2026
1 check passed
sandervonk added a commit to cmu-tt/cmu-tt.github.io that referenced this pull request Sep 8, 2026
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.

2 participants