refactor(ui): declare DateRangePickerValue locally instead of importing it from tremor

DateRangePickerValue is a plain object shape, not a component, so the
twelve files that used it were each carrying a no-restricted-imports
suppression for a type that tremor declares as
{ from?: Date; to?: Date; selectValue?: string }.

Declare that shape in components/shared/date_picker_types.ts and point
every consumer at it, which drops ten suppressions from the baseline.
advanced_date_picker and usage_date_picker keep their tremor imports:
they still render tremor Button, Text and DateRangePicker, and moving
DateRangePicker itself needs react-day-picker.
This commit is contained in:
Yuneng Jiang 2026-08-14 11:01:43 -07:00
parent c9917cbf99
commit fe61fa12e4
No known key found for this signature in database
14 changed files with 19 additions and 52 deletions

View file

@ -140,9 +140,6 @@
"local/filename-pascal-case": {
"count": 1
},
"no-restricted-imports": {
"count": 1
},
"react-hooks/purity": {
"count": 1
},
@ -301,11 +298,6 @@
"count": 3
}
},
"src/app/(dashboard)/guardrails-monitor/_components/GuardrailsMonitorView.tsx": {
"no-restricted-imports": {
"count": 1
}
},
"src/app/(dashboard)/guardrails-monitor/_components/GuardrailsOverview.tsx": {
"no-nested-ternary": {
"count": 5
@ -1484,9 +1476,6 @@
"src/app/(dashboard)/usage/_components/components/EntityUsage/EntityUsage.tsx": {
"local/no-complex-jsx-arrow": {
"count": 2
},
"no-restricted-imports": {
"count": 1
}
},
"src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.tsx": {
@ -1507,9 +1496,6 @@
"no-nested-ternary": {
"count": 1
},
"no-restricted-imports": {
"count": 1
},
"react-hooks/purity": {
"count": 1
},
@ -1736,32 +1722,9 @@
"count": 1
}
},
"src/components/EntityUsageExport/ExportSummary.tsx": {
"no-restricted-imports": {
"count": 1
}
},
"src/components/EntityUsageExport/UsageExportHeader.tsx": {
"no-restricted-imports": {
"count": 1
}
},
"src/components/EntityUsageExport/types.ts": {
"no-restricted-imports": {
"count": 1
}
},
"src/components/EntityUsageExport/utils.test.ts": {
"no-restricted-imports": {
"count": 1
}
},
"src/components/EntityUsageExport/utils.ts": {
"max-params": {
"count": 3
},
"no-restricted-imports": {
"count": 1
}
},
"src/components/GuardrailSettingsView.tsx": {
@ -3222,9 +3185,6 @@
"local/filename-pascal-case": {
"count": 1
},
"no-restricted-imports": {
"count": 1
},
"react-hooks/set-state-in-effect": {
"count": 1
}

View file

@ -1,4 +1,4 @@
import { DateRangePickerValue } from "@tremor/react";
import type { DateRangePickerValue } from "@/components/shared/date_picker_types";
import React, { useEffect, useState } from "react";
import NotificationsManager from "@/components/molecules/notifications_manager";
import UsageDatePicker from "@/components/shared/usage_date_picker";

View file

@ -1,4 +1,4 @@
import type { DateRangePickerValue } from "@tremor/react";
import type { DateRangePickerValue } from "@/components/shared/date_picker_types";
import React, { useCallback, useMemo, useState } from "react";
import { formatDate } from "@/components/networking";
import AdvancedDatePicker from "@/components/shared/advanced_date_picker";

View file

@ -14,7 +14,7 @@ import { MoneyCell } from "@/components/shared/table_cells";
import { Card as ShadcnCard, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { hasCapability, type Capability } from "@/utils/capabilities";
import { formatNumberWithCommas } from "@/utils/dataUtils";
import type { DateRangePickerValue } from "@tremor/react";
import type { DateRangePickerValue } from "@/components/shared/date_picker_types";
import { ChevronDown, ChevronRight, ExternalLink, Info, Loader2 } from "lucide-react";
import type { ColumnDef } from "@tanstack/react-table";
import { Alert, AlertDescription } from "@/components/shared/Alert";

View file

@ -7,7 +7,7 @@
*/
import { ChevronDown, ChevronRight, Download, ExternalLink, Info, Loader2, Sparkles, X } from "lucide-react";
import type { DateRangePickerValue } from "@tremor/react";
import type { DateRangePickerValue } from "@/components/shared/date_picker_types";
import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { BarChart } from "@/components/shared/charts";

View file

@ -1,5 +1,5 @@
import React from "react";
import type { DateRangePickerValue } from "@tremor/react";
import type { DateRangePickerValue } from "@/components/shared/date_picker_types";
interface ExportSummaryProps {
dateRange: DateRangePickerValue;

View file

@ -1,4 +1,4 @@
import type { DateRangePickerValue } from "@tremor/react";
import type { DateRangePickerValue } from "@/components/shared/date_picker_types";
import { Download } from "lucide-react";
import React, { useState } from "react";
import { Button } from "@/components/ui/button";

View file

@ -1,4 +1,4 @@
import type { DateRangePickerValue } from "@tremor/react";
import type { DateRangePickerValue } from "@/components/shared/date_picker_types";
import type { Team } from "@/components/key_team_helpers/key_list";
export type ExportFormat = "csv" | "json";

View file

@ -1,4 +1,4 @@
import type { DateRangePickerValue } from "@tremor/react";
import type { DateRangePickerValue } from "@/components/shared/date_picker_types";
import Papa from "papaparse";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import type { EntitySpendData, ExportScope } from "./types";

View file

@ -1,5 +1,5 @@
import { formatNumberWithCommas } from "@/utils/dataUtils";
import type { DateRangePickerValue } from "@tremor/react";
import type { DateRangePickerValue } from "@/components/shared/date_picker_types";
import Papa from "papaparse";
import type { EntityBreakdown, EntitySpendData, EntityType, ExportMetadata, ExportScope } from "./types";

View file

@ -1,5 +1,6 @@
import { CalendarOutlined, ClockCircleOutlined } from "@ant-design/icons";
import { Button, DateRangePickerValue, Text } from "@tremor/react";
import { Button, Text } from "@tremor/react";
import type { DateRangePickerValue } from "./date_picker_types";
import moment from "moment";
import React, { useCallback, useEffect, useRef, useState } from "react";

View file

@ -0,0 +1,5 @@
export type DateRangePickerValue = {
from?: Date;
to?: Date;
selectValue?: string;
};

View file

@ -1,5 +1,6 @@
import React, { useCallback, useState, useRef } from "react";
import { DateRangePicker, DateRangePickerValue, Text } from "@tremor/react";
import { DateRangePicker, Text } from "@tremor/react";
import type { DateRangePickerValue } from "./date_picker_types";
interface UsageDatePickerProps {
value: DateRangePickerValue;

View file

@ -17,7 +17,7 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip
import { BarChart } from "@/components/shared/charts";
import { userAgentSummaryCall, tagDauCall, tagWauCall, tagMauCall, tagDistinctCall } from "./networking";
import PerUserUsage from "./per_user_usage";
import type { DateRangePickerValue } from "@tremor/react";
import type { DateRangePickerValue } from "@/components/shared/date_picker_types";
import { ChartLoader } from "./shared/chart_loader";
// New interfaces for the updated API response