atproto explorer
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix form subsmission in record view resolves #18

Juliet 57de249f dce96b5c

+13 -10
+13 -10
src/views/record.tsx
··· 1 1 import { CredentialManager, XRPC } from "@atcute/client"; 2 2 import { ComAtprotoRepoGetRecord } from "@atcute/client/lexicons"; 3 3 4 - import { action, query, redirect, useParams } from "@solidjs/router"; 4 + import { query, useParams } from "@solidjs/router"; 5 5 import { createEffect, createSignal, onCleanup, onMount, Show } from "solid-js"; 6 6 7 7 import { editor } from "monaco-editor"; ··· 42 42 let model: editor.IModel; 43 43 let did = params.repo; 44 44 let rpc: XRPC; 45 + let formRef!: HTMLFormElement; 45 46 46 47 const clickEvent = (event: MouseEvent) => { 47 48 if (modal() && event.target == modal()) setOpenDelete(false); ··· 111 112 "getRecord", 112 113 ); 113 114 114 - const editRecord = action(async (formData: FormData) => { 115 + const editRecord = async (formData: FormData) => { 115 116 const record = model.getValue(); 116 117 const validate = 117 118 formData.get("validate")?.toString() === "true" ? true ··· 157 158 } catch (err: any) { 158 159 setEditNotice(err.message); 159 160 } 160 - }); 161 + }; 161 162 162 - const deleteRecord = action(async () => { 163 + const deleteRecord = async () => { 163 164 rpc = new XRPC({ handler: agent }); 164 165 await rpc.call("com.atproto.repo.deleteRecord", { 165 166 data: { ··· 168 169 rkey: params.rkey, 169 170 }, 170 171 }); 171 - throw redirect(`/at://${params.repo}/${params.collection}`); 172 - }); 172 + window.location.href = `/at://${params.repo}/${params.collection}`; 173 + }; 173 174 174 175 createEffect(() => { 175 176 if (openDelete() || openEdit()) document.body.style.overflow = "hidden"; ··· 227 228 > 228 229 <div class="dark:bg-dark-400 rounded-md border border-slate-900 bg-slate-100 p-4 text-slate-900 dark:border-slate-100 dark:text-slate-100"> 229 230 <h3 class="mb-2 text-lg font-bold">Editing record</h3> 230 - <form action={editRecord} method="post"> 231 + <form ref={formRef}> 231 232 <div class="mb-2 flex items-center gap-x-2"> 232 233 <label for="validate" class="min-w-20 select-none"> 233 234 Validate ··· 266 267 Cancel 267 268 </button> 268 269 <button 269 - type="submit" 270 + type="button" 271 + onclick={() => editRecord(new FormData(formRef))} 270 272 class="rounded-lg bg-green-500 px-2.5 py-1.5 text-sm font-bold text-slate-100 hover:bg-green-400 focus:outline-none focus:ring-1 focus:ring-slate-700 dark:bg-green-600 dark:hover:bg-green-500 dark:focus:ring-slate-300" 271 273 > 272 274 Edit ··· 296 298 > 297 299 <div class="dark:bg-dark-400 rounded-md border border-slate-900 bg-slate-100 p-4 text-slate-900 dark:border-slate-100 dark:text-slate-100"> 298 300 <h3 class="text-lg font-bold">Delete this record?</h3> 299 - <form action={deleteRecord} method="post"> 301 + <form> 300 302 <div class="mt-2 inline-flex gap-2"> 301 303 <button 302 304 onclick={() => setOpenDelete(false)} ··· 305 307 Cancel 306 308 </button> 307 309 <button 308 - type="submit" 310 + type="button" 311 + onclick={deleteRecord} 309 312 class="rounded-lg bg-red-500 px-2.5 py-1.5 text-sm font-bold text-slate-100 hover:bg-red-400 focus:outline-none focus:ring-1 focus:ring-slate-700 dark:bg-red-600 dark:hover:bg-red-500 dark:focus:ring-slate-300" 310 313 > 311 314 Delete