Merge pull request #63 from atridadl/dev

4.0.2
 Added back welcome message on dashboard
 Dependency updates
This commit is contained in:
Atridad Lahiji 2023-11-24 22:27:26 -07:00 committed by GitHub
commit 413528a14d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 64 additions and 53 deletions

View file

@ -1,11 +1,12 @@
import { getAuth } from "@clerk/remix/ssr.server";
import { LoaderFunction, redirect } from "@remix-run/node";
import { Link } from "@remix-run/react";
import { LogInIcon, TrashIcon } from "lucide-react";
import { LogInIcon, ShieldIcon, TrashIcon } from "lucide-react";
import { useState } from "react";
import LoadingIndicator from "~/components/LoadingIndicator";
import { useEventSource } from "remix-utils/sse/react";
import { useAuth } from "@clerk/remix";
import { useUser } from "@clerk/remix";
import { isAdmin, isVIP } from "~/services/helpers";
export const loader: LoaderFunction = async (args) => {
const { userId } = await getAuth(args);
@ -36,8 +37,8 @@ type RoomsResponse =
| undefined;
export default function Dashboard() {
const { userId } = useAuth();
let roomsFromDb = useEventSource("/api/room/get/all", { event: userId! });
const { user, isLoaded } = useUser();
let roomsFromDb = useEventSource("/api/room/get/all", { event: user?.id! });
let roomsFromDbParsed = JSON.parse(roomsFromDb!) as RoomsResponse;
@ -107,6 +108,16 @@ export default function Dashboard() {
</div>
</div>
<h1 className="flex flex-row flex-wrap text-center justify-center items-center gap-1 text-4xl font-bold">
Hi, {user?.firstName ?? user?.username}!{" "}
{isAdmin(user?.publicMetadata) && (
<ShieldIcon className="inline-block text-primary" />
)}
{isVIP(user?.publicMetadata) && (
<ShieldIcon className="inline-block text-secondary" />
)}
</h1>
{roomsFromDbParsed && roomsFromDbParsed.length > 0 && (
<div className="overflow-x-auto">
<table className="table text-center">
@ -150,7 +161,7 @@ export default function Dashboard() {
New Room
</label>
{!roomsFromDbParsed && <LoadingIndicator />}
{(!roomsFromDbParsed || !isLoaded) && <LoadingIndicator />}
</div>
);
}

View file

@ -1,6 +1,6 @@
{
"name": "sprintpadawan",
"version": "4.0.1",
"version": "4.0.2",
"private": true,
"sideEffects": false,
"type": "module",
@ -11,7 +11,7 @@
"typecheck": "tsc"
},
"dependencies": {
"@clerk/remix": "^3.1.5",
"@clerk/remix": "^3.1.6",
"@libsql/client": "0.4.0-pre.2",
"@paralleldrive/cuid2": "^2.2.2",
"@remix-run/css-bundle": "^2.3.1",
@ -21,10 +21,10 @@
"csv42": "^5.0.0",
"drizzle-orm": "^0.29.0",
"isbot": "^3.7.1",
"lucide-react": "^0.292.0",
"lucide-react": "^0.293.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"remix-utils": "^7.1.0",
"remix-utils": "^7.2.0",
"svix": "^1.14.0"
},
"devDependencies": {
@ -35,7 +35,7 @@
"@types/react-dom": "^18.2.17",
"autoprefixer": "^10.4.16",
"better-sqlite3": "^9.1.1",
"daisyui": "^4.4.4",
"daisyui": "^4.4.6",
"dotenv": "^16.3.1",
"drizzle-kit": "^0.20.4",
"eslint": "^8.54.0",

86
pnpm-lock.yaml generated
View file

@ -6,8 +6,8 @@ settings:
dependencies:
'@clerk/remix':
specifier: ^3.1.5
version: 3.1.5(@remix-run/react@2.3.1)(@remix-run/server-runtime@2.3.1)(react-dom@18.2.0)(react@18.2.0)
specifier: ^3.1.6
version: 3.1.6(@remix-run/react@2.3.1)(@remix-run/server-runtime@2.3.1)(react-dom@18.2.0)(react@18.2.0)
'@libsql/client':
specifier: 0.4.0-pre.2
version: 0.4.0-pre.2
@ -36,8 +36,8 @@ dependencies:
specifier: ^3.7.1
version: 3.7.1
lucide-react:
specifier: ^0.292.0
version: 0.292.0(react@18.2.0)
specifier: ^0.293.0
version: 0.293.0(react@18.2.0)
react:
specifier: ^18.2.0
version: 18.2.0
@ -45,8 +45,8 @@ dependencies:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
remix-utils:
specifier: ^7.1.0
version: 7.1.0(@remix-run/node@2.3.1)(@remix-run/react@2.3.1)(react@18.2.0)
specifier: ^7.2.0
version: 7.2.0(@remix-run/node@2.3.1)(@remix-run/react@2.3.1)(react@18.2.0)
svix:
specifier: ^1.14.0
version: 1.14.0
@ -74,8 +74,8 @@ devDependencies:
specifier: ^9.1.1
version: 9.1.1
daisyui:
specifier: ^4.4.4
version: 4.4.4(postcss@8.4.31)
specifier: ^4.4.6
version: 4.4.6(postcss@8.4.31)
dotenv:
specifier: ^16.3.1
version: 16.3.1
@ -519,11 +519,11 @@ packages:
to-fast-properties: 2.0.0
dev: true
/@clerk/backend@0.34.1(react@18.2.0):
resolution: {integrity: sha512-I6u7vb7XHA0kNek5Ez4VVqBDZKxLepR6wJXlYUy5lGwsTdaQiFwy5Q0nKP2GdQQYtlKpXSAryLu19Cq5zaaNYg==}
/@clerk/backend@0.34.2(react@18.2.0):
resolution: {integrity: sha512-ouulkcT6kfbAPw3w0vbkl758KzQ2y9UUnuhRJ5dY3SPGNjJnpes1BNETLnA1O3llZVV5yYexluhee4XmFcwV3A==}
engines: {node: '>=14'}
dependencies:
'@clerk/shared': 1.1.0(react@18.2.0)
'@clerk/shared': 1.1.1(react@18.2.0)
'@clerk/types': 3.58.0
'@peculiar/webcrypto': 1.4.1
'@types/node': 16.18.6
@ -536,20 +536,20 @@ packages:
- react
dev: false
/@clerk/clerk-react@4.28.0(react@18.2.0):
resolution: {integrity: sha512-zMFdiqqXkwAks1xmheUrAS6GODDdlpsCHA3VEnNVlSL0XH3bE4jWNr7lr0SJMmcaEsmZE/JQ+uNPJ4qEvEDGjA==}
/@clerk/clerk-react@4.28.1(react@18.2.0):
resolution: {integrity: sha512-xfdLOqnbONwt+/kUh5+Fzs0wAJcLD4Bc0mM/af0Wlu1zdnggVR8da29fw+pZL5p8VGXavxP3hJdS9vvj5hFX+g==}
engines: {node: '>=14'}
peerDependencies:
react: '>=16'
dependencies:
'@clerk/shared': 1.1.0(react@18.2.0)
'@clerk/shared': 1.1.1(react@18.2.0)
'@clerk/types': 3.58.0
react: 18.2.0
tslib: 2.4.1
dev: false
/@clerk/remix@3.1.5(@remix-run/react@2.3.1)(@remix-run/server-runtime@2.3.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-SWacZIwm/2zyZjsN3I1/DDYo+yoQ2B3BkcwEHwkGCLMkaJwipoS6nQtD04cr/RGbzrlBETBGR7gOUdEaIAtKOw==}
/@clerk/remix@3.1.6(@remix-run/react@2.3.1)(@remix-run/server-runtime@2.3.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-xDLW52A+YQ2KnwnwFsFrr6+WDHlIilFF4x8Tq6UUM5xhGvkyFIJbYa3MDNBi2FJSNwcNTEq25U/Eq5ds7suZcg==}
engines: {node: '>=18.0.0'}
peerDependencies:
'@remix-run/react': ^2.0.0
@ -557,9 +557,9 @@ packages:
react: '>=18.0.0'
react-dom: '>=18.0.0'
dependencies:
'@clerk/backend': 0.34.1(react@18.2.0)
'@clerk/clerk-react': 4.28.0(react@18.2.0)
'@clerk/shared': 1.1.0(react@18.2.0)
'@clerk/backend': 0.34.2(react@18.2.0)
'@clerk/clerk-react': 4.28.1(react@18.2.0)
'@clerk/shared': 1.1.1(react@18.2.0)
'@clerk/types': 3.58.0
'@remix-run/react': 2.3.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)
'@remix-run/server-runtime': 2.3.1(typescript@5.3.2)
@ -569,8 +569,8 @@ packages:
tslib: 2.4.1
dev: false
/@clerk/shared@1.1.0(react@18.2.0):
resolution: {integrity: sha512-rxQ6bxAERZsf/dzCU35qt3gRp9+a035Vrre8j8tyT60dbP8PQhXUbeNu+oVqqjpHWeyoWWt6fZGLXbDTXdXx7g==}
/@clerk/shared@1.1.1(react@18.2.0):
resolution: {integrity: sha512-pEzhalD1Yo/gGsOE2BQugVQTjlIl2aYmoeRld3BDXHRDV1jnk+yUE2CFOw6bojgFWN9sbeN/ph/47UWvvoCSOg==}
peerDependencies:
react: '>=16'
peerDependenciesMeta:
@ -1716,7 +1716,7 @@ packages:
tar-fs: 2.1.1
tsconfig-paths: 4.2.0
typescript: 5.3.2
undici: 5.27.2
undici: 5.28.0
ws: 7.5.9
transitivePeerDependencies:
- '@types/node'
@ -1976,22 +1976,22 @@ packages:
/@types/node-fetch@2.6.9:
resolution: {integrity: sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==}
dependencies:
'@types/node': 20.9.4
'@types/node': 20.10.0
form-data: 4.0.0
dev: false
/@types/node-forge@1.3.10:
resolution: {integrity: sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==}
dependencies:
'@types/node': 20.9.4
'@types/node': 20.10.0
dev: true
/@types/node@16.18.6:
resolution: {integrity: sha512-vmYJF0REqDyyU0gviezF/KHq/fYaUbFhkcNbQCuPGFQj6VTbXuHZoxs/Y7mutWe73C8AC6l9fFu8mSYiBAqkGA==}
dev: false
/@types/node@20.9.4:
resolution: {integrity: sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==}
/@types/node@20.10.0:
resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==}
dependencies:
undici-types: 5.26.5
@ -2028,7 +2028,7 @@ packages:
/@types/ws@8.5.10:
resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
dependencies:
'@types/node': 20.9.4
'@types/node': 20.10.0
dev: false
/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2):
@ -2585,7 +2585,7 @@ packages:
hasBin: true
dependencies:
caniuse-lite: 1.0.30001564
electron-to-chromium: 1.4.592
electron-to-chromium: 1.4.594
node-releases: 2.0.13
update-browserslist-db: 1.0.13(browserslist@4.22.1)
dev: true
@ -2758,8 +2758,8 @@ packages:
restore-cursor: 3.1.0
dev: true
/cli-spinners@2.9.1:
resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==}
/cli-spinners@2.9.2:
resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
engines: {node: '>=6'}
dev: true
@ -2923,8 +2923,8 @@ packages:
type: 1.2.0
dev: true
/daisyui@4.4.4(postcss@8.4.31):
resolution: {integrity: sha512-ysp66uFOJNhkmaFYvifSQi+R+QSuSR6dX2Wts0GxT4Xzn6+PqpHwn2ka3SNK6HCmtjIPW3E3eIILycYY449bBw==}
/daisyui@4.4.6(postcss@8.4.31):
resolution: {integrity: sha512-Zum9dWsYufduID4IfwI1h/+qQIuoXBpVaG9l/rOlLOVbCmpvE7LQK/GDYE7YOT8NDXHOH+EqMqT8uzGqlbTFig==}
engines: {node: '>=16.9.0'}
dependencies:
css-selector-tokenizer: 0.8.0
@ -3264,8 +3264,8 @@ packages:
jake: 10.8.7
dev: true
/electron-to-chromium@1.4.592:
resolution: {integrity: sha512-D3NOkROIlF+d5ixnz7pAf3Lu/AuWpd6AYgI9O67GQXMXTcCP1gJQRotOq35eQy5Sb4hez33XH1YdTtILA7Udww==}
/electron-to-chromium@1.4.594:
resolution: {integrity: sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ==}
dev: true
/emoji-regex@8.0.0:
@ -4026,7 +4026,7 @@ packages:
resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
engines: {node: '>= 0.8'}
dependencies:
'@types/node': 20.9.4
'@types/node': 20.10.0
require-like: 0.1.2
dev: true
@ -5196,8 +5196,8 @@ packages:
es5-ext: 0.10.62
dev: true
/lucide-react@0.292.0(react@18.2.0):
resolution: {integrity: sha512-rRgUkpEHWpa5VCT66YscInCQmQuPCB1RFRzkkxMxg4b+jaL0V12E3riWWR2Sh5OIiUhCwGW/ZExuEO4Az32E6Q==}
/lucide-react@0.293.0(react@18.2.0):
resolution: {integrity: sha512-g3AN0EYITCpAjNgLHrKrFWvIJzZy0Y9OPBaonyKw1cM+nZE6piOM+TiuQdYfha7oa76TMiDaWXQHE44CEqsrzw==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0
dependencies:
@ -5714,7 +5714,7 @@ packages:
glob-to-regexp: 0.4.1
source-map-support: 0.5.21
stoppable: 1.1.0
undici: 5.27.2
undici: 5.28.0
workerd: 1.20231030.0
ws: 8.14.2
youch: 3.3.3
@ -6127,7 +6127,7 @@ packages:
bl: 4.1.0
chalk: 4.1.2
cli-cursor: 3.1.0
cli-spinners: 2.9.1
cli-spinners: 2.9.2
is-interactive: 1.0.0
is-unicode-supported: 0.1.0
log-symbols: 4.1.0
@ -6752,8 +6752,8 @@ packages:
unified: 10.1.2
dev: true
/remix-utils@7.1.0(@remix-run/node@2.3.1)(@remix-run/react@2.3.1)(react@18.2.0):
resolution: {integrity: sha512-cceintceWvmNvgLLFeAUkWRcdWuOHGDLaWh0aeL0bLGWnMPBilIyT74Rira1az/ImS9owfh8tjLL4w/22AXJiA==}
/remix-utils@7.2.0(@remix-run/node@2.3.1)(@remix-run/react@2.3.1)(react@18.2.0):
resolution: {integrity: sha512-eFfwUZnGwKvINpC10HaF6fzywp0CsJ3cI/voNM7tv3NN+mbrqiwuOb/ANkVCOj51wdoXyGyvi1rix6j1IJf21w==}
engines: {node: '>=18.0.0'}
peerDependencies:
'@remix-run/cloudflare': ^2.0.0
@ -7625,8 +7625,8 @@ packages:
/undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
/undici@5.27.2:
resolution: {integrity: sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==}
/undici@5.28.0:
resolution: {integrity: sha512-gM12DkXhlAc5+/TPe60iy9P6ETgVfqTuRJ6aQ4w8RYu0MqKuXhaq3/b86GfzDQnNA3NUO6aUNdvevrKH59D0Nw==}
engines: {node: '>=14.0'}
dependencies:
'@fastify/busboy': 2.1.0