diff --git a/src/components/TextareaField.svelte b/src/components/TextareaField.svelte
new file mode 100644
index 0000000..56355f4
--- /dev/null
+++ b/src/components/TextareaField.svelte
@@ -0,0 +1,23 @@
+
+
+
+ {#if title}
+
{title}
+ {/if}
+
+ {#if errorText}
+
{errorText}
+ {/if}
+
diff --git a/src/lib/utils.ts b/src/lib/utils.ts
index 8871245..b76620b 100644
--- a/src/lib/utils.ts
+++ b/src/lib/utils.ts
@@ -1,7 +1,7 @@
-import { type ClassValue, clsx } from "clsx";
-import { twMerge } from "tailwind-merge";
-import { cubicOut } from "svelte/easing";
-import type { TransitionConfig } from "svelte/transition";
+import { type ClassValue, clsx } from 'clsx';
+import { twMerge } from 'tailwind-merge';
+import { cubicOut } from 'svelte/easing';
+import type { TransitionConfig } from 'svelte/transition';
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
@@ -19,13 +19,9 @@ export const flyAndScale = (
params: FlyAndScaleParams = { y: -8, x: 0, start: 0.95, duration: 150 }
): TransitionConfig => {
const style = getComputedStyle(node);
- const transform = style.transform === "none" ? "" : style.transform;
+ const transform = style.transform === 'none' ? '' : style.transform;
- const scaleConversion = (
- valueA: number,
- scaleA: [number, number],
- scaleB: [number, number]
- ) => {
+ const scaleConversion = (valueA: number, scaleA: [number, number], scaleB: [number, number]) => {
const [minA, maxA] = scaleA;
const [minB, maxB] = scaleB;
@@ -35,13 +31,11 @@ export const flyAndScale = (
return valueB;
};
- const styleToString = (
- style: Record
- ): string => {
+ const styleToString = (style: Record): string => {
return Object.keys(style).reduce((str, key) => {
if (style[key] === undefined) return str;
return str + `${key}:${style[key]};`;
- }, "");
+ }, '');
};
return {
@@ -59,4 +53,13 @@ export const flyAndScale = (
},
easing: cubicOut
};
-};
\ No newline at end of file
+};
+
+export function generateRandomHex(length: number): string {
+ const hexChars = '0123456789abcdef';
+ let result = '';
+ for (let i = 0; i < length; i++) {
+ result += hexChars[Math.floor(Math.random() * 16)];
+ }
+ return result;
+}
diff --git a/src/routes/problems/+page.svelte b/src/routes/problems/+page.svelte
index 5982b0a..eb87697 100644
--- a/src/routes/problems/+page.svelte
+++ b/src/routes/problems/+page.svelte
@@ -1,2 +1,140 @@
-Welcome to SvelteKit
-Visit kit.svelte.dev to read the documentation
+
+
+
+
+
+
+ Problem Tracker
+
+
+
+
+
+
+
+
+ New problem
+
+
+
+ Child status upon creation
+
+
+
+
+
+
+
+
+
+
+
+
+ {#if $currentUser}
+
+ {:else}
+
+ {/if}
+
+
+
+ {#if $problems && $devmode}
+
+ {/if}
+
+
+
+
+