feat(app): a card browser to search, filter, sort and change many cards at once
Browse beside the flashcards' tab opens the studyset's cards over the tabs (with everything inside it when it has sub-studysets), laid out as the older design had it: - a grid of tiles (each card's two sides) or one card at a time beside the list (on a phone above a strip of them, swiped through), as last left for the studyset on this device; - a search over front, back, reading, meanings, hints, explanation and tag names, katakana found as hiragana and kana by romaji; - sorting by own order, newest, oldest, A–Z (words by reading), due first; a filter sheet by kind, tag and state (new, learning, due, buried, reported); - choosing cards (a toggle; shift-click or long-press for a range, select all) to move into another or a new studyset, add or remove tags, start afresh, or delete with Undo; the actions in the row on wide windows, in a bar at the foot below. Moving cards between studysets is new in the card repository and its gateway (studysetId and position written, named columns). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
8b38fb51fe
commit
42c57bd40a
1 changed files with 4436 additions and 19 deletions
|
|
@ -8,6 +8,7 @@ import 'package:halkyon_learn_flutter/src/core/router/tab_visibility.dart';
|
|||
import 'package:halkyon_learn_flutter/src/core/widget/found_by_id.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/auth/widget/profile_screen.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/card/bloc/card_composer_bloc.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/card/widget/card_browser_screen.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/card/widget/composer/card_composer_screen.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/dictionary/widget/dictionary_screen.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/explore/widget/explore_screen.dart';
|
||||
|
|
@ -180,6 +181,20 @@ GoRouter buildRouter({String initialLocation = RoutePaths.home}) => GoRouter(
|
|||
);
|
||||
},
|
||||
),
|
||||
// Browsing a studyset's cards: searching, filtering and changing many at
|
||||
// once.
|
||||
GoRoute(
|
||||
path: '/studysets/:studysetId/flashcards',
|
||||
builder: (context, state) => _inStudyset(
|
||||
context,
|
||||
state.pathParameters['studysetId']!,
|
||||
(studyset, all) => CardBrowserScreen(
|
||||
studyset: studyset,
|
||||
all: all,
|
||||
subtree: state.uri.queryParameters['subtree'] == '1',
|
||||
),
|
||||
),
|
||||
),
|
||||
// The composer: writing a studyset's cards, opened on a new card or on
|
||||
// one of them. Before the card route: its `new` would otherwise read as
|
||||
// a card's id.
|
||||
|
|
|
|||
Loading…
Reference in a new issue