prncc_obsidian-repeat-plugin/src/settings.ts
Andre Perunicic a71dc21494
Add mostly tag-based filtering to review interface (#46)
* Add tag-based filtering to review interface

Filter due notes using Dataview FROM expressions. Features:
- Collapsible filter drawer with tag shortcuts showing counts
- Custom query input supporting tags, folders, and complex expressions
- Save/load/delete named filter presets
- Filter state persists between sessions
- Shows filtered vs total count in header

* Limit tag display to 6 with expandable +N more button

- Show only 6 tags by default in filter shortcuts
- Add clickable '+N more' button that loads 6 more tags each click
- Style the button with dashed border and hover effect
- Reset displayed count when view refreshes
- Show filter name in count when using saved filters

* Document tag filtering feature in README

* Make status bar clickable and load faster

- Click status bar item to open Repeat view
- Show 'Repeat' text immediately, update count when Dataview ready
- Check if Dataview index already initialized to avoid waiting

* Update README with new screenshots and documentation

- Replace old screenshots with new webp images
- Simplify and reorganize documentation
- Add filtering feature documentation
2026-01-06 00:22:04 -05:00

35 lines
976 B
TypeScript

import { Repeat } from "./repeat/repeatTypes";
export interface SavedFilter {
name: string;
query: string; // Dataview FROM expression, e.g. "#math" or "#math AND \"Courses\""
}
export interface RepeatPluginSettings {
showDueCountInStatusBar: boolean;
showRibbonIcon: boolean;
ignoreFolderPath: string;
morningReviewTime: string;
eveningReviewTime: string;
defaultRepeat: Repeat;
enqueueNonRepeatingNotes: boolean;
filterQuery: string; // Current Dataview FROM expression
savedFilters: SavedFilter[]; // Named filter presets
}
export const DEFAULT_SETTINGS: RepeatPluginSettings = {
showDueCountInStatusBar: true,
showRibbonIcon: true,
ignoreFolderPath: '',
morningReviewTime: '06:00',
eveningReviewTime: '18:00',
defaultRepeat: {
repeatStrategy: 'SPACED',
repeatPeriod: 1,
repeatPeriodUnit: 'DAY',
repeatTimeOfDay: 'AM',
},
enqueueNonRepeatingNotes: false,
filterQuery: '',
savedFilters: [],
};