Sort list pages by clicking a column header
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 55/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- angular, supabase, tailwindcss, typescript
- 領域
- accessibility, frontend, testing
調査の方向性
Read libs/demo-shared/src/lib/resource-list-state.ts and the resource table implementations under libs/material/src/lib/resource-table/ and libs/tailwind/src/lib/resource-table/; check how ListParams.sorters reaches the Supabase data provider. Then trace both demos and the generated pages with pnpm run sync:pages. Done means both table layers support the three-step sort cycle, reset to page 1, expose aria-sort and keyboard interaction, and have tests for sorting and pagination reset.
索引モデルが issue の本文から書いたものです。
説明
What is wrong
List pages cannot be sorted by clicking a column header. The order is fixed by defaultSorters or falls back to id.
Where to look
- The data layer already supports sorting:
sortersinListParams(libs/core/src/lib/list-params.ts), applied by the Supabase data provider. - The list state builds its sorters in
libs/demo-shared/src/lib/resource-list-state.ts(definition()?.defaultSorters ?? [{ field: 'id', order: 'asc' }]). - Tables:
libs/material/src/lib/resource-table/(Angular Material hasMatSort) andlibs/tailwind/src/lib/resource-table/.
Proposal
- A click on a header sorts by that column: ascending, then descending, then back to the default order.
- The table shows which column is sorted and in which direction (
aria-sorton the header). - The page goes back to page 1 when the sort changes.
- A field can opt out of sorting (for example a long text).
Done when
- Sorting works in both UI layers, in both demos and in the generated pages (
pnpm run sync:pages). -
aria-sortand keyboard use work. - Tests cover the sort cycle and the reset to page 1.
- 主要言語
- TypeScript
- スター
- 2
- フォーク
- 2
- 平均マージ
- 9時間 17分
- マージ済み PR(30日)
- 48
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pidrang/pidrang のほかの issue
-
documentation good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
メンテナーはふだん 1 日以内に返信
-
bug good first issue layer: library pkg: cli
難易度 1/5 1〜3時間 初心者へのやさしさ 92/100
メンテナーはふだん 1 日以内に返信
-
good first issue layer: demo
難易度 1/5 1時間未満 初心者へのやさしさ 95/100
メンテナーはふだん 1 日以内に返信
-
good first issue layer: demo
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
good first issue layer: demo
難易度 1/5 1時間未満 初心者へのやさしさ 95/100
メンテナーはふだん 1 日以内に返信
pidrang/pidrang の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
vercel-labs/ui#540 ·
メンテナーはふだん 1 日以内に返信
-
accepted ai-dev ai-implementing
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
livesport/homer#218 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
normalizePropName strips `#` characters from Figma property names instead of only the `#id` suffixオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
figma/code-connect#419 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
Negative values skip k/M abbreviation and medium decimal format on line, stacked-area, and tooltipオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
britecharts/britecharts#1255 ·
メンテナーはふだん 1 日以内に返信