feat: dashboard signals, profile integrations, top nav, empty states, delete modal#52
Merged
Merged
Conversation
Signals (Slack, GitHub, JIRA) are user-scoped not workspace-scoped, so the profile page is their natural home. - profile.ts: inject SignalService, add signals state + filter/markRead/archive methods - profile.html: add signals section below profile cards with source/status filter pills, search bar, signal-board, and styled empty state - profile.css: signals section styles — dark-theme filter pills, divider, empty state card - dashboard.ts: remove SignalService, SignalBoard, SearchBar imports and all signal state/methods - dashboard.html: remove signals section; update hero copy to link users to Profile for signals - dashboard.css: add .hero-link style for the inline Profile link in hero copy Ref Sentinent-AI/Sentinent#36
Integrations are account-level connections, not workspace content, so the profile page is their natural home. - WorkspaceIntegrationsComponent: add @input() inputWorkspaceId + ngOnChanges so the component reloads when the workspace selection changes when embedded outside the router (e.g. profile page) - profile.ts: inject WorkspaceService, load workspaces, expose selectedWorkspaceId + selectWorkspace() for workspace switcher - profile.html: add integrations section below profile cards — embeds <app-workspace-integrations> with workspace selector dropdown (shown only when user has more than one workspace); empty state if no workspaces - profile.css: integrations section styles, workspace selector dropdown - dashboard.ts/html: revert signals-move (signals stay on dashboard); restore original hero copy - workspace-details.html: replace Integrations nav link with a 'Integrations →' link that routes to /profile Ref Sentinent-AI/Sentinent#36
Create AppNavComponent — a fixed dark nav bar shared across all auth'd pages (dashboard, profile, workspace detail). - app-nav: Sentinent logo (links /dashboard), Dashboard + Profile links with routerLinkActive highlight, unread signal badge on Profile (polls every 60s), Logout button - dashboard: remove inline brand/profile-btn/logout-btn; add padding-top: 56px to offset fixed nav - profile: remove 'Back to dashboard' button (nav replaces it); add padding-top offset - workspace-details: add <app-nav>; update padding-top; shorten 'Back to Dashboard' label to '← Dashboard' Ref Sentinent-AI/Sentinent#36
After signals load, compute a workspaceId→unreadCount map from the already-fetched signal list (no extra API call). Each workspace card now shows a dark pill badge (e.g. '3 unread') when there are unread signals for that workspace, giving users at-a-glance triage from the dashboard. Ref Sentinent-AI/Sentinent#36
Signal filtering is now client-side on an already-fetched full list, so switching tabs is instant with no extra network calls. - Source tabs (All / Slack / GitHub / JIRA) each show a live count badge; active tab gets an underline indicator - 'Unread only' toggle replaces the old status filter pill — one click to focus, one click to clear - allSignals holds the full status-filtered list; signals is the tab-filtered view; applyFilters() recomputes on tab switch without re-fetching Ref Sentinent-AI/Sentinent#36
- Signals: two distinct empty states depending on context
- 'No signals yet' with icon + 'Connect integrations' CTA when
allSignals is empty (no tools connected)
- 'All caught up' with check icon when integrations are connected
but the active tab/filter returns nothing; message adapts to
sourceTab and showUnreadOnly flag
- Decision list: replace bare text with structured empty state
(icon, heading, sub-copy, 'Create your first decision' CTA button)
- CSS: empty-icon, empty-cta, caught-up/no-integrations variants
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes