- Notifications
You must be signed in to change notification settings - Fork 0
feat(ui): tools & favourites mockups + design-token adoption + clinical UI polish#225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
941fe19b60fd61f5cb693e0435a8d3277322cf4764d605e9574ba90946b433b6bbf3f2dae41bb55e0345ca0c1d521bfca14e424dea90245bc1e49447498351de5c9fe952c2e72ca46855b623208b2cd7fba7f54d2288840613c10e72c4a6cd1131e817365b34bc919e80d1399File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,7 @@ | ||
| "use client"; | ||
| import Link from "next/link"; | ||
| import { useRouter } from "next/navigation"; | ||
| import { | ||
| BookOpen, | ||
| Brain, | ||
| @@ -812,6 +813,7 @@ export function ApplicationsLauncherWorkspace({ | ||
| const [pinnedIds, setPinnedIds] = useState(seedPinnedIds); | ||
| const [mobileDetailOpen, setMobileDetailOpen] = useState(false); | ||
| const [desktopViewport, setDesktopViewport] = useState(false); | ||
| const router = useRouter(); | ||
| const isDashboardTools = variant === "dashboard-tools"; | ||
| const copy = isDashboardTools ? dashboardToolsLauncherCopy : standaloneLauncherCopy; | ||
| const query = controlledQuery ?? uncontrolledQuery; | ||
| @@ -870,7 +872,18 @@ export function ApplicationsLauncherWorkspace({ | ||
| function submitFooterSearch(event: FormEvent<HTMLFormElement>) { | ||
| event.preventDefault(); | ||
| const firstMatch = filteredApps[0]; | ||
| if (firstMatch) selectApplication(firstMatch.id); | ||
| if (!firstMatch) return; | ||
| // Dashboard-tools run mode hides the detail panel on desktop, so selecting a | ||
| // match has no visible effect — launch the top match directly instead. | ||
| if (isDashboardTools && !showDetailPanel && desktopViewport) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Fresh evidence in this revision is that the new launch behavior is added to Useful? React with 👍 / 👎. | ||
| if (firstMatch.external) { | ||
| window.open(firstMatch.href, "_blank", "noopener,noreferrer"); | ||
| } else { | ||
| router.push(firstMatch.href); | ||
| } | ||
| return; | ||
| } | ||
| selectApplication(firstMatch.id); | ||
| } | ||
| const workspace = ( | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -904,7 +904,11 @@ export function DifferentialsHome({ | ||
| runSearch(action.query); | ||
| } | ||
| if (trimmedQuery) { | ||
| // Only surface ranked results once an actual search has run (loading or | ||
| // evidence matches present) — not on every keystroke, and not for a query | ||
| // whose source search returned nothing. Otherwise the hard-coded demo | ||
| // rankings render as if relevant to any typed text. | ||
| if (trimmedQuery && (loading || hasEvidenceMatches)) { | ||
BigSimmo marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| return ( | ||
| <SearchResultsView | ||
| query={trimmedQuery} | ||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fresh evidence in this revision is that stale evidence is cleared only through the
DifferentialsHomecallback, but the visible/portaled composer is owned byMasterSearchHeaderand still receivesonQueryChange={setQuery}. After a successful differential search, editing that composer on the differential home page leaves the olddocumentMatchespopulated, sohasEvidenceMatchesremains true andSearchResultsViewcan render the previous query's rankings under the new unsubmitted text; clear matches in the header query path or key matches to the submitted query.Useful? React with 👍 / 👎.