- Foldable left panel (user profile) and right panel (task details) - Clicking a task in the list or graph node selects it and shows details - Both views (task list + graph) always mounted via absolute inset-0 for correct canvas dimensions; tabs toggle visibility with opacity - Graph node selection animation: other nodes repel outward (charge -600), then selected node smoothly slides to center (500ms cubic ease-out), then charge restores to -120 and graph stabilizes - Graph re-fits on tab switch and panel resize via ResizeObserver - Fix UUID string IDs throughout (backend returns UUIDs, not integers) - Add TaskDetailPanel, UserPanel components - Add CLAUDE.md project documentation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
import { NEXT_RSC_UNION_QUERY } from "../client/components/app-router-headers";
|
|
import { INTERNAL_HEADERS } from "../shared/lib/constants";
|
|
const INTERNAL_QUERY_NAMES = [
|
|
"__nextFallback",
|
|
"__nextLocale",
|
|
"__nextInferredLocaleFromDefault",
|
|
"__nextDefaultLocale",
|
|
"__nextIsNotFound",
|
|
NEXT_RSC_UNION_QUERY
|
|
];
|
|
const EDGE_EXTENDED_INTERNAL_QUERY_NAMES = [
|
|
"__nextDataReq"
|
|
];
|
|
export function stripInternalQueries(query) {
|
|
for (const name of INTERNAL_QUERY_NAMES){
|
|
delete query[name];
|
|
}
|
|
}
|
|
export function stripInternalSearchParams(url, isEdge) {
|
|
const isStringUrl = typeof url === "string";
|
|
const instance = isStringUrl ? new URL(url) : url;
|
|
for (const name of INTERNAL_QUERY_NAMES){
|
|
instance.searchParams.delete(name);
|
|
}
|
|
if (isEdge) {
|
|
for (const name of EDGE_EXTENDED_INTERNAL_QUERY_NAMES){
|
|
instance.searchParams.delete(name);
|
|
}
|
|
}
|
|
return isStringUrl ? instance.toString() : instance;
|
|
}
|
|
/**
|
|
* Strip internal headers from the request headers.
|
|
*
|
|
* @param headers the headers to strip of internal headers
|
|
*/ export function stripInternalHeaders(headers) {
|
|
for (const key of INTERNAL_HEADERS){
|
|
delete headers[key];
|
|
}
|
|
}
|
|
|
|
//# sourceMappingURL=internal-utils.js.map
|