diff options
Diffstat (limited to 'src/pages/create')
| -rw-r--r-- | src/pages/create/[board].astro | 67 | ||||
| -rw-r--r-- | src/pages/create/thread.ts | 32 | 
2 files changed, 29 insertions, 70 deletions
| diff --git a/src/pages/create/[board].astro b/src/pages/create/[board].astro index 45f8b0d..9c2308f 100644 --- a/src/pages/create/[board].astro +++ b/src/pages/create/[board].astro @@ -1,54 +1,25 @@  --- -import Default from '../../layouts/Default.astro' +import Default from '../../layouts/Default.astro'; +import Form from '../../components/Form.astro'; +  const { board } = Astro.params;  --- -<h1>{board}</h1> -  <Default> -  <form id="form" method="post" action="/create/thread" onsubmit="document.getElementById('submit-button').disabled = true"> -    <textarea name="ThreadName" placeholder="Thread Name" style="height: 1.5rem; width: 350px;"></textarea> <br> -    <textarea name="ThreadText" placeholder="Thread Contents" style="height: 150px; width: 350px;"></textarea> -    <br> <input id="submit-button" type="submit" value="Create Thread" /> -    <input id="image" type="file" accept=".png,.jpg,.gif,.bmp,.mp4" /> - -  </form> -  <script define:vars={{ board }}> -    document.forms['form'].addEventListener('submit', async (event) => { -      event.preventDefault(); - -      let form = new FormData(event.target); -      let reader = new FileReader(); - -      reader.onload = e => { -        form.append('image', -          (e != null) ? e.target.result.toString() : '' -        ); -      } - -      reader.onloadend = () => { -        fetch(event.target.action, { -          method: event.target.method, -          body: new URLSearchParams(form) -        }).then((r) => { -          if(r.status == 200) { -            alert('Thread Successfuly Posted'); -            window.location.assign(`/board/${board}`); -          } -          else alert('An Error has Accured'); -        }); -      } - -      form.append('board', board); - -      let image = document.getElementById("image").files[0]; -      if(image) { -        reader.readAsDataURL(image); -      } else { -        reader.onload(null); -        reader.onloadend(); -      } - -    }); -  </script> +  <h1>{board}</h1> + +  <Form board={board} tid="niggers"> +    <form id="form" method="post" action="/create/thread" onsubmit="document.getElementById('submit-button').disabled = true"> +      <textarea name="ThreadName" placeholder="Thread Name" style="height: 1.5rem; width: 350px;"></textarea> <br> +      <textarea name="ThreadText" placeholder="Thread Contents" style="height: 150px; width: 350px;"></textarea> +      <br> <input id="submit-button" type="submit" value="Create Thread" /> +      <input id="image" type="file" accept=".png,.jpg,.gif,.bmp,.mp4" /> +    </form> +  </Form>  </Default> + +<style> +  :root { +    --wdt: 360px; +  } +</style> diff --git a/src/pages/create/thread.ts b/src/pages/create/thread.ts index 0af3471..0a0b7d1 100644 --- a/src/pages/create/thread.ts +++ b/src/pages/create/thread.ts @@ -1,28 +1,16 @@ -import type { APIRoute } from 'astro'; -import { v4 as uuidV4 } from 'uuid'; +import { api } from '../../lib/api'; +import { processThreadOut } from '../../lib/thread'; -import type Thread from '../../models/Thread' -import { api } from '../../lib/api' +export async function post({ request }) { +  const form = await request.formData(); -export async function post({ params, request }): APIRoute { -    const form = await request.formData(); +  console.log(form); -    let t: Thread = {}; -    t.id = uuidV4().toString(); -    t.ThreadName = form.get('ThreadName').toString(); -    // data["ThreadCreator"] = locals.userid; -    t.ThreadCreator = ''; -    t.ThreadText = form.get('ThreadText').toString(); -    t.Comments = []; -    t.CreationDate = Date.now(); -    // data["ImageId"] = await post_img(base64image, writeFileSync); -    // data["FileType"] = get_img_type(base64image); -    t.ImageId = form.get('image').toString(); -    t.FileType = ''; +  let t: Thread = await processThreadOut(form); -    // await api('post', `thread/${form.get('board')}`, JSON.stringify(data)); +  await api('post', `thread/${form.get('board')}`, JSON.stringify(t)); -    return new Response(null, { -        status: 200 -    }); +  return new Response(t.id, { +    status: 200 +  });  } | 
