mirror of
https://github.com/dergigi/boris.git
synced 2026-01-03 23:14:36 +01:00
feat: add default highlight visibility settings
- Add defaultHighlightVisibilityNostrverse/Friends/Mine to UserSettings interface - Add toggle controls in Settings page under Startup Preferences section - Apply default visibility settings on app startup in Bookmarks component - Users can now set which highlight levels (nostrverse/friends/mine) should be visible by default
This commit is contained in:
@@ -125,6 +125,12 @@ const Bookmarks: React.FC<BookmarksProps> = ({ relayPool, onLogout }) => {
|
||||
useEffect(() => {
|
||||
if (settings.defaultViewMode) setViewMode(settings.defaultViewMode)
|
||||
if (settings.showHighlights !== undefined) setShowHighlights(settings.showHighlights)
|
||||
// Apply default highlight visibility settings
|
||||
setHighlightVisibility({
|
||||
nostrverse: settings.defaultHighlightVisibilityNostrverse !== false,
|
||||
friends: settings.defaultHighlightVisibilityFriends !== false,
|
||||
mine: settings.defaultHighlightVisibilityMine !== false
|
||||
})
|
||||
// Always start with both panels collapsed on initial load
|
||||
// Don't apply saved collapse settings on initial load - let user control them
|
||||
}, [settings])
|
||||
|
||||
@@ -20,6 +20,9 @@ const DEFAULT_SETTINGS: UserSettings = {
|
||||
highlightColorNostrverse: '#9333ea',
|
||||
highlightColorFriends: '#f97316',
|
||||
highlightColorMine: '#ffff00',
|
||||
defaultHighlightVisibilityNostrverse: true,
|
||||
defaultHighlightVisibilityFriends: true,
|
||||
defaultHighlightVisibilityMine: true,
|
||||
}
|
||||
|
||||
interface SettingsProps {
|
||||
@@ -256,6 +259,45 @@ const Settings: React.FC<SettingsProps> = ({ settings, onSave, onClose }) => {
|
||||
<span>Start with highlights panel collapsed</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div className="setting-group">
|
||||
<label htmlFor="highlightVisibilityNostrverse" className="checkbox-label">
|
||||
<input
|
||||
id="highlightVisibilityNostrverse"
|
||||
type="checkbox"
|
||||
checked={localSettings.defaultHighlightVisibilityNostrverse !== false}
|
||||
onChange={(e) => setLocalSettings({ ...localSettings, defaultHighlightVisibilityNostrverse: e.target.checked })}
|
||||
className="setting-checkbox"
|
||||
/>
|
||||
<span>Show nostrverse highlights by default</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div className="setting-group">
|
||||
<label htmlFor="highlightVisibilityFriends" className="checkbox-label">
|
||||
<input
|
||||
id="highlightVisibilityFriends"
|
||||
type="checkbox"
|
||||
checked={localSettings.defaultHighlightVisibilityFriends !== false}
|
||||
onChange={(e) => setLocalSettings({ ...localSettings, defaultHighlightVisibilityFriends: e.target.checked })}
|
||||
className="setting-checkbox"
|
||||
/>
|
||||
<span>Show friends highlights by default</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div className="setting-group">
|
||||
<label htmlFor="highlightVisibilityMine" className="checkbox-label">
|
||||
<input
|
||||
id="highlightVisibilityMine"
|
||||
type="checkbox"
|
||||
checked={localSettings.defaultHighlightVisibilityMine !== false}
|
||||
onChange={(e) => setLocalSettings({ ...localSettings, defaultHighlightVisibilityMine: e.target.checked })}
|
||||
className="setting-checkbox"
|
||||
/>
|
||||
<span>Show my highlights by default</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -22,6 +22,10 @@ export interface UserSettings {
|
||||
highlightColorNostrverse?: string
|
||||
highlightColorFriends?: string
|
||||
highlightColorMine?: string
|
||||
// Default highlight visibility toggles
|
||||
defaultHighlightVisibilityNostrverse?: boolean
|
||||
defaultHighlightVisibilityFriends?: boolean
|
||||
defaultHighlightVisibilityMine?: boolean
|
||||
}
|
||||
|
||||
export async function loadSettings(
|
||||
|
||||
Reference in New Issue
Block a user