Files
radicle-desktop/src/components/AnnounceSwitch.svelte
T
Rūdolfs Ošiņš 010cac0377 Redesign app with new UI kit
Redesign the entire app with a new UI kit. Typography, colors, icons,
avatars, and border radii have all been updated for a more polished,
consistent appearance that matches our other products like
radicle-explorer.

- Replace blockies-based avatars with a new DID-based avatar system
- Move Settings and Create Issue into fullscreen modals
- Change the default theme to follow the system theme
- Remove window decorations on macOS for a cleaner, more native feel
- Update the app icon
- Fix popovers and tooltips

Navigation:

- Rewrite app navigation and layouts
- Add a sidebar that gives you access to all your repos
- Change the startup screen to open directly to the notification inbox
- Add a getting started guide shown to new users on first launch

Settings:

- Add a setting to disable the notification badge
- Add a code font setting

Bug fixes:

- Fix reactions and edits incorrectly targeting the root comment
  instead of the intended reply
- Restrict issue/patch state, labels and assignees to delegates only
2026-03-20 17:48:38 -06:00

62 lines
1.2 KiB
Svelte

<script lang="ts" module>
export const announce = writable<boolean>(loadAnnounce());
function loadAnnounce(): boolean {
const storedAnnounce = localStorage
? localStorage.getItem("announce")
: null;
if (storedAnnounce === null) {
return true;
} else {
return storedAnnounce === "true";
}
}
export function storeAnnounce(newAnnounce: boolean): void {
announce.set(newAnnounce);
if (localStorage) {
localStorage.setItem("announce", newAnnounce.toString());
} else {
console.warn(
"localStorage isn't available, not able to persist the selected announce preference without it.",
);
}
}
</script>
<script lang="ts">
import { writable } from "svelte/store";
import Button from "@app/components/Button.svelte";
</script>
<style>
.container {
display: flex;
align-items: center;
}
</style>
<div class="container">
<Button
variant="ghost"
flatRight
active={$announce}
onclick={() => {
storeAnnounce(true);
}}>
Right away
</Button>
<Button
variant="ghost"
flatLeft
active={!$announce}
onclick={() => {
storeAnnounce(false);
}}>
Periodically
</Button>
</div>