Files
taskpile/frontend/node_modules/next/dist/experimental/testmode/playwright/page-route.js
Alvis f1d51b8cc8 Add side panels, task selection, graph animation, and project docs
- 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>
2026-04-08 11:23:06 +00:00

59 lines
1.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "handleRoute", {
enumerable: true,
get: function() {
return handleRoute;
}
});
function continueRoute(route, request, testHeaders) {
return route.continue({
headers: {
...request.headers(),
...testHeaders
}
});
}
async function handleRoute(route, page, testHeaders, fetchHandler) {
const request = route.request();
// Continue the navigation and non-fetch requests.
if (request.isNavigationRequest() || request.resourceType() !== "fetch") {
return continueRoute(route, request, testHeaders);
}
// Continue the local requests. The followup requests will be intercepted
// on the server.
const pageOrigin = new URL(page.url()).origin;
const requestOrigin = new URL(request.url()).origin;
if (pageOrigin === requestOrigin) {
return continueRoute(route, request, testHeaders);
}
if (!fetchHandler) {
return route.abort();
}
const postData = request.postDataBuffer();
const fetchRequest = new Request(request.url(), {
method: request.method(),
headers: Object.fromEntries(Object.entries(request.headers()).filter(([name])=>!name.toLowerCase().startsWith("next-test-"))),
body: postData ?? null
});
const proxyResponse = await fetchHandler(fetchRequest);
if (!proxyResponse) {
return route.abort();
}
if (proxyResponse === "abort") {
return route.abort();
}
if (proxyResponse === "continue") {
return continueRoute(route, request, testHeaders);
}
const { status, headers, body } = proxyResponse;
return route.fulfill({
status,
headers: Object.fromEntries(headers),
body: body ? Buffer.from(await proxyResponse.arrayBuffer()) : undefined
});
}
//# sourceMappingURL=page-route.js.map