chore(lint): add perf category to oxlint and fix resulting warnings

- Enable `perf: warn` in `.oxlintrc.json` and add `builtin` env; disable `no-await-in-loop` and `react/no-array-index-key` globally
- Reorder plugins so `oxc` is first
- Add `.oxfmtrc.json` override to suppress trailing commas in JSON/JSONC files
- Replace spread-into-new-object patterns (`{ ...x, key: val }`) with `Object.assign(x, { key: val })` in discover, explore, integrations, search, credits, and image-cache to satisfy perf rules
- Memoize `ChartContext` and `ToggleGroupContext` provider values to avoid unnecessary re-renders
This commit is contained in:
2026-03-18 15:48:47 -04:00
parent 2b0c683b7b
commit 3a0374c825
10 changed files with 43 additions and 33 deletions
+2 -1
View File
@@ -44,9 +44,10 @@ function ChartContainer({
}) {
const uniqueId = React.useId();
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
const contextValue = React.useMemo(() => ({ config }), [config]);
return (
<ChartContext.Provider value={{ config }}>
<ChartContext.Provider value={contextValue}>
<div
data-slot="chart"
data-chart={chartId}
+5 -3
View File
@@ -31,6 +31,10 @@ function ToggleGroup({
spacing?: number;
orientation?: "horizontal" | "vertical";
}) {
const contextValue = React.useMemo(
() => ({ variant, size, spacing, orientation }),
[variant, size, spacing, orientation],
);
return (
<ToggleGroupPrimitive
data-slot="toggle-group"
@@ -45,9 +49,7 @@ function ToggleGroup({
)}
{...props}
>
<ToggleGroupContext.Provider value={{ variant, size, spacing, orientation }}>
{children}
</ToggleGroupContext.Provider>
<ToggleGroupContext.Provider value={contextValue}>{children}</ToggleGroupContext.Provider>
</ToggleGroupPrimitive>
);
}