From b9e590546921c6073e58aae483e82d6906f945c7 Mon Sep 17 00:00:00 2001 From: Mythie Date: Tue, 20 Feb 2024 19:46:18 +1100 Subject: [PATCH] feat: create from template --- apps/web/src/components/forms/token.tsx | 110 +++++++++--------- apps/web/src/pages/api/v1/[...ts-rest].tsx | 2 +- packages/api/v1/contract.ts | 17 ++- packages/api/v1/implementation.ts | 64 +++++++++- packages/api/v1/middleware/authenticated.ts | 6 +- packages/api/v1/schema.ts | 58 ++++++++- .../public-api/get-user-by-token.ts | 9 +- .../template/create-document-from-template.ts | 46 +++++++- 8 files changed, 242 insertions(+), 70 deletions(-) diff --git a/apps/web/src/components/forms/token.tsx b/apps/web/src/components/forms/token.tsx index 688ff47ca..fa5ae17a0 100644 --- a/apps/web/src/components/forms/token.tsx +++ b/apps/web/src/components/forms/token.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useEffect, useState } from 'react'; +import { useState } from 'react'; import { useRouter } from 'next/navigation'; @@ -72,16 +72,6 @@ export const ApiTokenForm = ({ className }: ApiTokenFormProps) => { }, }); - useEffect(() => { - if (newlyCreatedToken) { - const timer = setTimeout(() => { - setNewlyCreatedToken(''); - }, 30000); - - return () => clearTimeout(timer); - } - }, [newlyCreatedToken]); - const copyToken = async (token: string) => { try { const copied = await copy(token); @@ -166,55 +156,59 @@ export const ApiTokenForm = ({ className }: ApiTokenFormProps) => { )} /> - ( - - Token expiration date +
+ ( + + Token expiration date -
- - +
+ + + +
+ + + + )} + /> + + ( + + Never expire + +
+ { + setNoExpirationDate((prev) => !prev); + field.onChange(val); + }} + /> +
-
- - -
- )} - /> - - ( - - Never expire - - { - setNoExpirationDate((prev) => !prev); - field.onChange(val); - }} - /> - - - - )} - /> + + + )} + /> +