Deep link: add prompt (#1669)
Example: open "dyad://add-prompt?data=eyJ0aXRsZSI6IlRlc3QgUHJvbXB0IiwiZGVzY3JpcHRpb24iOiJBIHRlc3QgcHJvbXB0IGZyb20gZGVlcCBsaW5rIiwiY29udGVudCI6IlRoaXMgaXMgdGhlIGNvbnRlbnQgb2YgdGhlIHByb21wdC4ifQ%3D%3D" <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds dyad://add-prompt deep link that navigates to Library and opens a prefilled Create Prompt dialog from base64 JSON. > > - **Deep Link Handling** > - Parse `dyad://add-prompt?data=<base64-json>` in `src/main.ts`; validate with `AddPromptDataSchema` and send `deep-link-received` with payload. > - Extend `DeepLinkContext` to navigate to `/library` on `add-prompt`. > - **Library/Dialogs** > - Add controlled open state and `prefillData` support to `CreateOrEditPromptDialog` and `CreatePromptDialog` (`src/components/CreatePromptDialog.tsx`). > - In `src/pages/library.tsx`, listen for `add-prompt` deep link, prefill form, open dialog, and clear deep-link state. > - **Schemas** > - Define `AddPromptDataSchema`, `AddPromptPayload`, and `AddPromptDeepLinkData` in `src/ipc/deep_link_data.ts` and include in `DeepLinkData` union. > - **E2E Tests** > - Add Playwright test `e2e-tests/add_prompt_deep_link.spec.ts` and ARIA snapshot to verify deep link opens prefilled dialog and saves prompt. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 1ddb12306cfca195682c8a1b719f60093b858d54. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
This commit is contained in:
@@ -20,8 +20,23 @@ export type AddMcpServerDeepLinkData = {
|
||||
type: "add-mcp-server";
|
||||
payload: AddMcpServerPayload;
|
||||
};
|
||||
|
||||
export const AddPromptDataSchema = z.object({
|
||||
title: z.string(),
|
||||
description: z.string(),
|
||||
content: z.string(),
|
||||
});
|
||||
|
||||
export type AddPromptPayload = z.infer<typeof AddPromptDataSchema>;
|
||||
|
||||
export type AddPromptDeepLinkData = {
|
||||
type: "add-prompt";
|
||||
payload: AddPromptPayload;
|
||||
};
|
||||
|
||||
export type DeepLinkData =
|
||||
| AddMcpServerDeepLinkData
|
||||
| AddPromptDeepLinkData
|
||||
| {
|
||||
type: string;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user