diff --git a/frontend/src/lib/components/sidebar/SidebarContent.svelte b/frontend/src/lib/components/sidebar/SidebarContent.svelte index a29793a3bd..c1543aec1d 100644 --- a/frontend/src/lib/components/sidebar/SidebarContent.svelte +++ b/frontend/src/lib/components/sidebar/SidebarContent.svelte @@ -15,6 +15,7 @@ HelpCircle, Home, LogOut, + Newspaper, Play, ServerCog, Settings, @@ -31,6 +32,8 @@ import { goto } from '$app/navigation' import ConfirmationModal from '../common/confirmationModal/ConfirmationModal.svelte' import { twMerge } from 'tailwind-merge' + import { onMount } from 'svelte' + import { type Changelog, changelogs } from './changelogs' $: mainMenuLinks = [ { label: 'Home', href: '/', icon: Home }, @@ -130,6 +133,27 @@ { label: 'Audit Logs', href: '/audit_logs', icon: Eye, disabled: $userStore?.operator } ] + let hasNewChangelogs = false + let recentChangelogs: Changelog[] = [] + let lastOpened = localStorage.getItem('changelogsLastOpened') + + onMount(() => { + if (lastOpened) { + // @ts-ignore + recentChangelogs = changelogs.filter((changelog) => changelog.date > lastOpened) + hasNewChangelogs = + recentChangelogs.length > 0 && lastOpened !== new Date().toISOString().split('T')[0] + } else { + recentChangelogs = changelogs.slice(-3) + } + }) + + function openChangelogs() { + const today = new Date().toISOString().split('T')[0] + localStorage.setItem('changelogsLastOpened', today) + hasNewChangelogs = false + } + const thirdMenuLinks = [ { label: 'Help', @@ -145,6 +169,11 @@ label: 'Issues', href: 'https://github.com/windmill-labs/windmill/issues/new', icon: Github + }, + { + label: 'Changelog', + href: 'https://www.windmill.dev/changelog/', + icon: Newspaper } ] } @@ -224,14 +253,33 @@ {#if menuLink.subItems}
- + + +
{ + if (menuLink.label === 'Help') { + openChangelogs() + } + }} + > + + {#if menuLink.label === 'Help' && hasNewChangelogs} + + + + + {/if} +
{#each menuLink.subItems as subItem (subItem.href ?? subItem.label)}
{/if} {/each} diff --git a/frontend/src/lib/components/sidebar/changelogs.ts b/frontend/src/lib/components/sidebar/changelogs.ts new file mode 100644 index 0000000000..a98209d7f8 --- /dev/null +++ b/frontend/src/lib/components/sidebar/changelogs.ts @@ -0,0 +1,25 @@ +export type Changelog = { + label: string + href: string + date: string +} + +const changelogs: Changelog[] = [ + { + label: 'Ag Charts', + href: 'https://www.windmill.dev/changelog/ag-charts', + date: '2024-01-24' + }, + { + label: 'Database Studio', + href: 'https://www.windmill.dev/changelog/database-studio', + date: '2024-01-24' + }, + { + label: 'Rich results render', + href: 'https://www.windmill.dev/changelog/rich-render', + date: '2024-01-23' + } +] + +export { changelogs }