fix(timeline): harden project view interactions
This commit is contained in:
@@ -11,6 +11,7 @@ import { TimelineQuickFilters } from "./TimelineQuickFilters.js";
|
||||
interface TimelineToolbarProps {
|
||||
viewMode: "resource" | "project";
|
||||
onViewModeChange: (mode: "resource" | "project") => void;
|
||||
isViewModeSwitchDisabled?: boolean;
|
||||
filters: TimelineFilters;
|
||||
onFiltersChange: (f: TimelineFilters) => void;
|
||||
filterOpen: boolean;
|
||||
@@ -30,6 +31,7 @@ interface TimelineToolbarProps {
|
||||
export function TimelineToolbar({
|
||||
viewMode,
|
||||
onViewModeChange,
|
||||
isViewModeSwitchDisabled = false,
|
||||
filters,
|
||||
onFiltersChange,
|
||||
filterOpen,
|
||||
@@ -179,8 +181,11 @@ export function TimelineToolbar({
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => onViewModeChange("resource")}
|
||||
aria-pressed={viewMode === "resource"}
|
||||
disabled={isViewModeSwitchDisabled}
|
||||
title={isViewModeSwitchDisabled ? "Timeline is still loading" : undefined}
|
||||
className={clsx(
|
||||
"px-3 py-2 transition-colors",
|
||||
"px-3 py-2 transition-colors disabled:cursor-wait disabled:opacity-60",
|
||||
viewMode === "resource"
|
||||
? "bg-brand-600 text-white"
|
||||
: "text-gray-700 hover:bg-gray-50 dark:text-gray-200 dark:hover:bg-gray-800",
|
||||
@@ -191,8 +196,11 @@ export function TimelineToolbar({
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => onViewModeChange("project")}
|
||||
aria-pressed={viewMode === "project"}
|
||||
disabled={isViewModeSwitchDisabled}
|
||||
title={isViewModeSwitchDisabled ? "Timeline is still loading" : undefined}
|
||||
className={clsx(
|
||||
"border-l border-gray-300 px-3 py-2 transition-colors dark:border-gray-600",
|
||||
"border-l border-gray-300 px-3 py-2 transition-colors disabled:cursor-wait disabled:opacity-60 dark:border-gray-600",
|
||||
viewMode === "project"
|
||||
? "bg-brand-600 text-white"
|
||||
: "text-gray-700 hover:bg-gray-50 dark:text-gray-200 dark:hover:bg-gray-800",
|
||||
|
||||
@@ -657,6 +657,7 @@ function TimelineViewContent({
|
||||
<TimelineToolbar
|
||||
viewMode={viewMode}
|
||||
onViewModeChange={setViewMode}
|
||||
isViewModeSwitchDisabled={isInitialLoading}
|
||||
filters={filters}
|
||||
onFiltersChange={setFilters}
|
||||
filterOpen={filterOpen}
|
||||
|
||||
Reference in New Issue
Block a user