Update project dependencies and configurations; remove deprecated package settings and enhance legacy build support
- Upgrade package manager to pnpm@11.5.2 and remove patched dependencies from package.json. - Update pnpm-lock.yaml to reflect new dependency versions and remove obsolete entries. - Refactor Vite configuration to improve legacy build handling, including new plugins for legacy CSS management. - Remove unused client/index.html file and adjust paths in Vite config for better project structure. - Enhance DesktopAIShell and EQPage components to support legacy build conditions and improve loading states for raw curves.
This commit is contained in:
@@ -157,6 +157,7 @@ export default function EQPage() {
|
||||
const [selectedCatalogTarget, setSelectedCatalogTarget] = useState<string>("");
|
||||
const [isConfirmingTarget, setIsConfirmingTarget] = useState(false);
|
||||
const [currentRawCurve, setCurrentRawCurve] = useState<number[] | null>(null);
|
||||
const [rawCurveLoading, setRawCurveLoading] = useState(false);
|
||||
const allowPeqRemoteSyncRef = useRef(false);
|
||||
const lastPeqCatalogSyncKeyRef = useRef("");
|
||||
const syncingHeadphoneRef = useRef(false);
|
||||
@@ -663,9 +664,13 @@ export default function EQPage() {
|
||||
return;
|
||||
}
|
||||
|
||||
const copyBrand = currentPeq?.brand?.trim() ?? "";
|
||||
const copyModel = currentPeq?.model?.trim() ?? "";
|
||||
const copyPayload: PeqChangePayload = {
|
||||
peqChange: {
|
||||
name: nextName,
|
||||
...(copyBrand ? { brand: copyBrand } : {}),
|
||||
...(copyModel ? { model: copyModel } : {}),
|
||||
filters: bands.map(bandToPeqFilter),
|
||||
autoPre: currentPeq?.autoPre ?? 0,
|
||||
preamp: currentPeq?.preamp ?? 0,
|
||||
@@ -704,6 +709,8 @@ export default function EQPage() {
|
||||
...prev,
|
||||
{
|
||||
name: nextName,
|
||||
...(addPresetMode === "copy" && copyBrand ? { brand: copyBrand } : {}),
|
||||
...(addPresetMode === "copy" && copyModel ? { model: copyModel } : {}),
|
||||
filters: localFilters,
|
||||
autoPre: localAutoPre,
|
||||
preamp: localPreamp,
|
||||
@@ -817,15 +824,8 @@ export default function EQPage() {
|
||||
|
||||
const loadRawCurveForPeq = useCallback(
|
||||
async (peq: { brand?: string; model?: string; name?: string } | undefined): Promise<number[] | null> => {
|
||||
let brand = peq?.brand?.trim() ?? "";
|
||||
let model = peq?.model?.trim() ?? "";
|
||||
|
||||
// Some presets only have `name` (e.g. "Apple AirPods Pro") and miss explicit brand/model.
|
||||
if ((!brand || !model) && peq?.name) {
|
||||
const [first, ...rest] = peq.name.trim().split(/\s+/);
|
||||
if (!brand && first) brand = first;
|
||||
if (!model && rest.length > 0) model = rest.join(" ");
|
||||
}
|
||||
const brand = peq?.brand?.trim() ?? "";
|
||||
const model = peq?.model?.trim() ?? "";
|
||||
if (!brand || !model) return null;
|
||||
|
||||
const modelCurve = await getModelCurve(brand, model);
|
||||
@@ -966,11 +966,20 @@ export default function EQPage() {
|
||||
syncingHeadphoneRef.current = true;
|
||||
setBandsForBothModes(nextBands);
|
||||
setSelectedBandByMode({ A: 0, B: 0 });
|
||||
const shouldFetchModelCurve = !!(peq.brand?.trim() && peq.model?.trim());
|
||||
if (shouldFetchModelCurve) {
|
||||
setRawCurveLoading(true);
|
||||
setCurrentRawCurve(null);
|
||||
} else {
|
||||
setRawCurveLoading(false);
|
||||
}
|
||||
|
||||
let cancelled = false;
|
||||
void (async () => {
|
||||
const raw = await loadRawCurveForPeq(peq as { brand?: string; model?: string });
|
||||
if (cancelled) return;
|
||||
setCurrentRawCurve(raw);
|
||||
setRawCurveLoading(false);
|
||||
renderCharts(nextBands, raw, false);
|
||||
})();
|
||||
requestAnimationFrame(() => {
|
||||
@@ -1463,6 +1472,7 @@ export default function EQPage() {
|
||||
<FreqChart
|
||||
bands={bands}
|
||||
rawCurve={currentRawCurve}
|
||||
rawCurveLoading={rawCurveLoading}
|
||||
selectedBand={selectedBand}
|
||||
abMode={abMode}
|
||||
onAbToggle={handleAbToggle}
|
||||
|
||||
Reference in New Issue
Block a user