Skip to content

Commit

Permalink
Upgrade v0.14 (#232)
Browse files Browse the repository at this point in the history
* Create schema.prisma

* update admin pages

* update app_diff

* Update e2e-tests.yml

* update docs & rename hook

* Update schema.prisma

* update app_diff

* add discord auth and app_diff

* update docs

* Update template/app/src/auth/userSignupFields.ts

Co-authored-by: Martin Šošić <[email protected]>

* move landing page

* update .env.vault

* Update e2e-tests.yml

---------

Co-authored-by: Martin Šošić <[email protected]>
  • Loading branch information
vincanger and Martinsos authored Jul 16, 2024
1 parent f52bc42 commit 94a6b8f
Show file tree
Hide file tree
Showing 46 changed files with 956 additions and 953 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

env:
WASP_TELEMETRY_DISABLE: 1
WASP_VERSION: 0.13.2
WASP_VERSION: 0.14.0-rc2

jobs:
test:
Expand Down
16 changes: 8 additions & 8 deletions opensaas-sh/app_diff/.env.vault.diff
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@
+#/--------------------------------------------------/
+
+# development
+DOTENV_VAULT_DEVELOPMENT="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"
+DOTENV_VAULT_DEVELOPMENT_VERSION=6
+DOTENV_VAULT_DEVELOPMENT="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"
+DOTENV_VAULT_DEVELOPMENT_VERSION=8
+
+# ci
+DOTENV_VAULT_CI="uIKC5RKdFeJiCAzoQ9e2oaT2EbR8usJcZIYlSoFl3HTFrh7J/qfo+Z+OqBgJKQllvCVIK4oQUsLICVWCRs+7yWp5j6gn2yu67lN4lKAfX0QCF/VFYNWa6u1NWZGT1bPRlvNIY7z/YnJZfgaq8Uj+mSU+C14KHMMCpKCSkbqqFX8AWlcPSkbjXaJP4IL3HxzPUGTMfq/+XbokI9r1UjBNYi1yus6jGjI4U2OtiDc61LZJ6Y0tsBeA8NA0iT2S+lwTJBjTmGHoMMjtK08Iw8GAXv9eejETvbHZfFTOpphIjeFXjFRUsgRfuPP3p/lErfncXofQ++9KNS5lhxINGBXQIKh2CRnjhajut38Xxr848YNAj4Ie4RKzeU1+aC6BXONhbD7qZQJmm63vtwTKwrUf8ML7T27DwdpV7dTdz5/W3UWnmbzhfI1pLeCHpBC1FrLBaxhFNFlkqsXiopen4iJf4ihWICn1hMCBGGRosKQJdj+y65FJMwraBbEVHa29FHYruhAPGFqGfEIWvQ++LXlPguJM/RL2txMoVppDanOwFCM3dMO3sF55BEuSSNJWX2s72ZDgTW4/Il7YiIBwwxChPs5vOQweYKqOd21HCl4t+ocu95ja3ZGROnhff72j2pCk7cahaVl/PS8WU7nZ1JQtkv5vNRR3nHgAH1nS9tSBDJ8twKEQ4bJcu2qdhGeQwenKRsV4nrKooGnQ8UlsvoTyozYYCseds2/iXX5vlc/lhL1fgcPPxoss2p+lDaS3AIIEMq0/TUCeRF2ImYUIMnnvCEb0T32Pz8bIfPblSThETdQ5A7ZRjyU9T9Ff6lpxqQwGUWO/ElKZ/CDsoeuj1UqOVLGRBwThrOHlU7LZ6kJnBvcy6AmWccE5fLsmf1l189FwMH6CimHIg2OC4ndCbiRKiP3+3OYHL0JSkTt8Lrsu/b+Mu0Kmiks1A16Sx2Lu1lUfPSsbAgYRYni7OkpgCOJ5DdnP607LTFVIichq4+KzQsc="
+DOTENV_VAULT_CI_VERSION=4
+DOTENV_VAULT_CI="sCTQ2ley6wx0rNsobpsTS2tN8aaMRg/3U9e7nQ8tMiCeRkEudHd4kchWXL5ya4b9eStIOuHDixdye2lnlucTc4t4cIaHg2oQE0oKuqB9U+UtBntYIyphqtXdkIuDVpJ2FRlG7ED9XhSB4XbbkBC07OqkgRJzcWaTARouCbVn8FBbyFVM9+huvR9o1xvSTATqH9F1VoiucdXuyy7ug65cFLYpm6HkKCusjnyu+xAQxOo3iLJSfjew4qigxscT2w1ciXUFn+t71qdyuGc1PI7GfXu6L6BWijJGT9bEgRJC+0CsGo3zOB3bBBdB3SuBcSekXrwyqKzymQ3OLAfWecTScBFpHyXfl5i0UgSsnQMzYn3ua000xcEor6//rZdWumI48BBNg0mzeF5zn4H8igsuKCc1e9n+PUBsH72rbEFkYOAAwhgs8JEIZ8qHF1LxZwKyOrN9Dis2Drj5+aCWpmTu1JlX8fcyP43+hsMe9cxQvtFsfA+nTaOIIt/IuPO5taNv2jW0vGsnyoahpFB0FyZOxEuPgSWrUJkrxgXMz7FwO/iLWtL4QImifAicuWgCjgMTBg+TP2sT5ekzRqjTARKVnkApi/LpL4nija6sIfqLxqtNLlAc5vuzHbkGGq+aR9l9IGeEmC/TPi0e9JCfu+oVC0m6du9nL72kOjAAqhAW0GWrBg1yffD27+xF9MJjddRtkBRBkPXGl1x79S6dURVwkspRK94VcuKCf7VY/9XcP74z9eYGhiduIzRpPLtXxWPSYi4+j6e3qzHPhdLQi+MpS8R1bkhUPpXG78a6l4qxELftctY8Njn2kJz5SRfYxaEoDBSx9Q8H7qXR/4mYBBG4q2Oc0vGuucrW8QyX6PaUXNM+irIYCK/QE3/Z5fEletW7KxV7rdf+pFSXuGyswQqkPH1kAruRyoMTMgH++//BNkwHeJn1Sq42R7hzF+jRmblC9e/e3StkP/4xN9dmjQ1xcJOg89GYNKxwwKBhX2O7bkfUBJI0tUe9aJLwkK1xHjxmSmy5d58dENzePtTSaoCCqDkvLuyOxxa8tEb23XAY"
+DOTENV_VAULT_CI_VERSION=5
+
+# staging
+DOTENV_VAULT_STAGING="AYBNNrkUH2ZyFdg6vgjrUZ/KO98JEhP7+8mam67KujGAv0EXs7yRT5eLG21sa/2mE5dHaZML5f59wUZY4E88pWetEaeR6cXk3fl4OslEyFq/EOTMjd0yaY/I19337prDAM9JBL1NgUaIuy9VICukOw39fu3LW2oovt3w/jEPE9oky4NSD5+TOgS8LuzvcUrFDACIs7Ywiquwy7wUYMoa7JFrNVT50wCSoELDBUHhGaIg6uffZ/hafvSXy58OW5bZvHxjOme+Qx9TERQPd/XMFiFFX2xvFTK+O6xjsGp6Q7C/Ri3fmZq0x87PGovUuYeqfGURmYBFt/XwVhmX0txTPmswMMxZQn9Iom7sOpHMsF9vtXZuue+Xf3WKhgYi+0DeB45o3jf7x0ljlNG8L2KIlKHZOY4d6cWBFmANCZeGxYpswKPd1tYgjk4FRXlpTDXnmu9rmb4ZzsIJWJ/KlyecXmcgimtZTNnGBwTs7dAKt2XwPPwGQbCsGy3dbljlnTgNREijmAjE+4jtrmoQALIaGSp5dHoI2o1gZ9oWep9qF0EgwqOWznz1Z8DIj2xtq+x1sefVmkfhi7KoVNDUE1gERY+5wuPMPzLaqJOUmzqNk4pgBr1l3jDk5Fj+9bOmDgkTu2Tm/IuVs4VCJF0gPCQstNMomhSpF5XCTxQJyjsBFF7+G3/Yq2AP8rtGio+thKOYrZRPYzqPCk3k7HCm8FnWZkX/GuiyL6SJYRfXbBojTXFy1vfpQySollD2kItS+ZXE9FjLqdErLqz5CVcWK7QFnbN57+jvhH2+WKzMOKG0V3Ul3cVfMA732iK7ySnyPbkaCvT2x+jyw6yCFbzP5MyfSSRHk2G3lgdViEszIpSzuNzxGgcybGWFrqWtbVTv/P8/aAMLuIgkE0Ec139GIEaTxryOb+RU8f8lTh9dQNby2+V+Iebh1S7K1EwOj27t7hvysM8X5XaOB0J0SOK+5XZooxNyJBOdArKPn/x3Ql5HxVo="
+DOTENV_VAULT_STAGING_VERSION=4
+DOTENV_VAULT_STAGING="jjDTQ53mmWE6kp11sR82vF9lsPNWaWteMBL3HzKC4uM16cvWzCjukaDZ++sR1/IwkEI+NYDwXoE0wTKxTA3YOQq5WcV2FdBq+DeBiJOJnVh5ghqxSukEf4tXRYIliCZ8/+caFLU7/tlrVwGkwXgjyjF3B0wgueiOMOlmIuyanXVgChEz/G2wlgzupQVtRWWmNClVMK5otcW6pbaX+ASrI2VqNVsVJm1LohdvFhUzCmGgVGjQNd6Stnjqchh9q9g2qAqDexbXGITBd9rPvz1pGduqoukxIpEe5TG7U/Zxg7ZrP8zTZ7jei8w8vA7rJ5EA/NKSgLcqvLmeu441y0OvgbnTykODbz0GVZve3PWzHGGsJDo+CWXmE5kKt0mdDOj2XCgNMGsjdHRP9GzCroQZ5QLGMFAwHqd5LnmwRZxJkmfxrMNxeIHBg9LIQ0FzxXHn9f5RvFuwhe+3nAfQo79Um/D459bd7MeZ9+F1vb++IhsSMoIq6Rcv1qMIgXv5SK8a1WrAdmVj6+3WPr+rdEijYmwLvXuI6Ad/HQCzZJkhzCvnE0lZ3XuqR/GDOCaqnMxqQjapW5HP0PXmHyUqSK/Ravl8Grb+2Z8ywULxoqbhxmK7ej8k4Vfn7sa65aVMYmj3CZIzkbsE0IdrIm84Frwmadzp8i5KxM9o4HC3ntRuKc6S9gTVT8OxUkyGu96w4qpVVAE7iL38VkAw0CIDZvcK1VtBcu4JeFRa0ZjXznUxLr2S4HsDwGtMBlkX8Q96rwh/IIusis51xl50xO6lg3uP8QwzrLLKFtHhinTHfvVIePeSm2usJxUXIvrvNekfcCebPsGdllY7t12eAbZ0RLk83loT0UsPAHUMDmdZT2eARLz7nta1lKm+PscuJIn/QxKF1K+zoJw0IL3nZL+c0iXSxZhaBHBwao5nI3CaysWr8xCohUQP/GuGE8xsivXw2DwWr4wmAmtCcT1thZtG2iOSuHQV00hlGyrghyVys/3zpR4m3qdtu5a7qxvwEpr584g7smFEySFERPBwSbfxw1dLBUj2VcNrXpR0RTG9fmye"
+DOTENV_VAULT_STAGING_VERSION=5
+
+# production
+DOTENV_VAULT_PRODUCTION="TepwfKk5dn/58biHM4NYALQtxgEAvSiLNKixJWONfgfIQ5UxyalX5xEKFQb/lK0bX++6HN6dEjXm4cvUSKMRZVzWn3l2ufge6Bzr3JqgM+i0ZV8XhVp6NdVFDqzJCNDLFN6zcL16ABu1SGtF83JinNooP28/sK78DeQDQpisa3oMDVitJ6uqdxKU+ysEWasXLbsj2reTOH/lbVOh2Tp266Qh449o7K6gyaLwo75Al7pACovB32LgYzSdphvhehMWmpcXrdswPBwAPL4RLUkDTCQDknHz++772hU2CjOb55BEda7fWm64bi4MqQkJdBPjiPAOOCEbdzW8HvUvCJwRM47nuU+AwoJgNdE0oSm3rGHmfXCKL/ZdE7m4zUGgYhuAMBffJNyI+qYwzOe0IBsZhdqBce6FYDIovV4qGnn3jAy6WGaAlu+u6mXMNTa+KYWWsmNXlXq37Vg5EAylpUT6uhzSSLypHKgZ5XgCLrWv9FA2tCdzL8cNrQpVrkuwfpJdAU8OvHH/mL7cGLnrqtjvYTM/nN5ecPVYJS5sxVBKomQlD2OVhC0eJL2+YfqCmhoFXzeam+Fn/suCba0GfGBYuG8KiSon18OEHjuqOtC23NYqfYcEiI4G05o9Hb8/ruDuQ/vS4YSBwJJb0Z2dYWg4J729HMkBj2Q5FYFTX7PgtfhtbfSxvHvknjkdENHkkvb3Z6ZM9fJGAapagfksCyFmpFZnBFZiKhMjWXSjQyHqclqp16KlAYuQor1zgc8rjrxN40X1JbKGDTVxNgE4WPhd7DBq6D1CgauuGgQcXjaoDQg2ln/Lt3doMkZPw2Pesz2CzQSEC9WFUnvsU1tc/1BBL8ItrspyU7Q6frKH1ZE2yWgTnMXJBQCP0hkgezwTDEm0EZ3mZfJk9H4s3qFVL+rcN1jwSP2Gg0JRL7ML3Teap0UG8yhDzG5RrN5CqpBrZ0z3GZMC+6mBKK/Zx55H0bupjhxiEsspkhdt06OfC0MKxWI="
+DOTENV_VAULT_PRODUCTION_VERSION=4
+DOTENV_VAULT_PRODUCTION="4LK0FEvptGga6hjj5y9Qh9RDQPj91hOLddcCxKemVjZamQUo2yrzzNYQvO0n4eASjGUHwruB8oggS5zJ5WS1mBlRv9QKuPnkQbBfYIHVEsWNM6uxIaBkbJPu/+fn5joHVujOMGcUninLV1vY6x7z4KieMlSiJ503rmoaGqCnctOp7QIm0SyCFFG7IzXWZz2X4Bs5d1DADV2GXo1VXB85qPjee579RdbqYPb/TU2DX1YFvGFztkugYvEBEHNb7OB42iz2EIUb7Oavc7IQ1YzeOF2lJz8jzWTqFYfws9qkgzXjSGr6iTrgXs4YgtcE6fp6zGd9QNLzZWeV5ORUrnqEuQcoV6/c/BdYR+TPeiMy+W2YcLvMHPcJDoLNYKIvO1C766CMwfohWzuTHYlrjKFwlkQka1CpyyFg/vpGrFu//djXDk6D2OLSjtTm/pZPdXhxNV81A+wp/GIzAViiUn65GXaKWM4hGs7OJXhheNl9Kg+DQ7p7lyV+UYJAyNHkPBexNxCsVphgb8Rgg2BhZXBzAnAQSwZt5+oOan5YKj8DxYLYEvuZlGI7mpbiwqDIa2taRFYTzejvtw/1wrSw3943nR8NBx6vsE9JD0AGGeFCkFwY07wmhETYrlKbXYc/XKp/77lUz0/zgLXdu55gwXHfHXaGHAWwhuDeUpdnDr9Syjd5lHzUAtQNNMg6IOrEhf9Nokp4aHcb6oOJmw/5hh+9tgaBk+jvGYGvsok1OXnpgAXuKL10C9zN3rR4/0tzZc1xqIe84ylevrhdkLekvxbbmOsymecMDIuSGhVYp9slvGbhRKtoPVwaujk/ds0YIUirp4pK83MVtdppg4O1iOspmXYPOLxp29LWVMany9PyqlkiFs2vPCJ8OgVp8DeZ0vVnC6Q6FLWHNEfSHPo/pd8w/JetZl//5V+pfKMDcKBUntzcUUqfHuLuE+8JUS1zob6IQ2P4GSLqOs/tE1Gfl3e3MKGFVDBx5faDcNyuQCuRRgXbUc3bk95rQZ7vDPWHJsyE/WH7ptPvK4ytyrxOaf/noEo/LAR8B16X0wpz4LW9"
+DOTENV_VAULT_PRODUCTION_VERSION=5
+
+#/----------------settings/metadata-----------------/
+DOTENV_VAULT="vlt_47e3eeb0730e831e688049600e59f8975260a1f00302ae08684ed87ba67872d0"
Expand Down
29 changes: 13 additions & 16 deletions opensaas-sh/app_diff/main.wasp.diff
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
--- template/app/main.wasp
+++ opensaas-sh/app/main.wasp
@@ -3,24 +3,24 @@
version: "^0.13.2"
version: "^0.14.0"
},

- title: "My Open SaaS App",
Expand Down Expand Up @@ -45,7 +45,7 @@
},
emailVerification: {
clientRoute: EmailVerificationRoute,
@@ -44,16 +44,14 @@
@@ -44,21 +44,18 @@
},
userSignupFields: import { getEmailUserFields } from "@src/auth/userSignupFields",
},
Expand All @@ -59,6 +59,11 @@
- // userSignupFields: import { getGitHubUserFields } from "@src/auth/userSignupFields",
- // configFn: import { getGitHubAuthConfig } from "@src/auth/userSignupFields",
- // },
- // Uncomment to enable Discord Auth (check https://wasp-lang.dev/docs/auth/social-auth/discord for setup instructions):
- // discord: {
- // userSignupFields: import { getDiscordUserFields } from "@src/auth/userSignupFields",
- // configFn: import { getDiscordAuthConfig } from "@src/auth/userSignupFields"
- // }
+ google: {
+ userSignupFields: import { getGoogleUserFields } from "@src/auth/userSignupFields",
+ configFn: import { getGoogleAuthConfig } from "@src/auth/userSignupFields",
Expand All @@ -67,10 +72,14 @@
+ userSignupFields: import { getGitHubUserFields } from "@src/auth/userSignupFields",
+ configFn: import { getGitHubAuthConfig } from "@src/auth/userSignupFields",
+ },
+ discord: {
+ userSignupFields: import { getDiscordUserFields } from "@src/auth/userSignupFields",
+ configFn: import { getDiscordAuthConfig } from "@src/auth/userSignupFields"
+ }
},
onAfterSignup: import { onAfterSignup } from "@src/auth/hooks",
onAuthFailedRedirectTo: "/login",
onAuthSucceededRedirectTo: "/demo-app",
@@ -76,11 +74,11 @@
@@ -81,11 +78,11 @@
// NOTE: "Dummy" provider is just for local development purposes.
// Make sure to check the server logs for the email confirmation url (it will not be sent to an address)!
// Once you are ready for production, switch to e.g. "SendGrid" or "Mailgun" providers. Check out https://docs.opensaas.sh/guides/email-sending/ .
Expand All @@ -84,15 +93,3 @@
},
},
}
@@ -125,7 +123,10 @@
email String? @unique
username String? @unique
lastActiveTimestamp DateTime @default(now())
- isAdmin Boolean @default(false)
+ isAdmin Boolean @default(true)
+ // isMockUser is an extra property for the demo app ensuring that all users can access
+ // the admin dashboard but won't be able to see the other users' data, only mock user data.
+ isMockUser Boolean @default(false)

stripeId String? @unique
checkoutSessionId String?
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
--- template/app/migrations/20240715142249_version_14/migration.sql
+++ opensaas-sh/app/migrations/20240715142249_version_14/migration.sql
@@ -0,0 +1,16 @@
+/*
+ Warnings:
+
+ - You are about to drop the column `sendEmail` on the `User` table. All the data in the column will be lost.
+ - You are about to drop the column `subscriptionTier` on the `User` table. All the data in the column will be lost.
+ - A unique constraint covering the columns `[stripeId]` on the table `User` will be added. If there are existing duplicate values, this will fail.
+
+*/
+-- AlterTable
+ALTER TABLE "User" DROP COLUMN "sendEmail",
+DROP COLUMN "subscriptionTier",
+ADD COLUMN "sendNewsletter" BOOLEAN NOT NULL DEFAULT false,
+ADD COLUMN "subscriptionPlan" TEXT;
+
+-- CreateIndex
+CREATE UNIQUE INDEX "User_stripeId_key" ON "User"("stripeId");
14 changes: 14 additions & 0 deletions opensaas-sh/app_diff/schema.prisma.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--- template/app/schema.prisma
+++ opensaas-sh/app/schema.prisma
@@ -14,7 +14,10 @@
email String? @unique
username String? @unique
lastActiveTimestamp DateTime @default(now())
- isAdmin Boolean @default(false)
+ isAdmin Boolean @default(true)
+ // isMockUser is an extra property for the demo app ensuring that all users can access
+ // the admin dashboard but won't be able to see the other users' data, only mock user data.
+ isMockUser Boolean @default(false)

stripeId String? @unique
checkoutSessionId String?
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
--- template/app/src/admin/dashboards/analytics/AnalyticsDashboardPage.tsx
+++ opensaas-sh/app/src/admin/dashboards/analytics/AnalyticsDashboardPage.tsx
@@ -1,4 +1,5 @@
import { type User } from 'wasp/entities';
@@ -1,4 +1,6 @@
+import { Link } from "wasp/client/router";
import { type AuthUser } from 'wasp/auth';
+import { useState, useEffect } from 'react';
import { useQuery, getDailyStats } from 'wasp/client/operations';
import TotalSignupsCard from './TotalSignupsCard';
import TotalPageViewsCard from './TotalPageViewsCard';
@@ -10,6 +11,7 @@
import { useHistory } from 'react-router-dom';
@@ -10,12 +12,45 @@
import { useRedirectHomeUnlessUserIsAdmin } from '../../useRedirectHomeUnlessUserIsAdmin'

const Dashboard = ({ user }: { user: User }) => {
const Dashboard = ({ user }: { user: AuthUser }) => {
+ const [isDemoInfoVisible, setIsDemoInfoVisible] = useState(false);
const history = useHistory();
if (!user.isAdmin) {
history.push('/');
@@ -17,8 +19,40 @@
useRedirectHomeUnlessUserIsAdmin({ user })

const { data: stats, isLoading, error } = useQuery(getDailyStats);

Expand All @@ -40,7 +38,7 @@
+ };
+
return (
<DefaultLayout>
<DefaultLayout user={user}>
+ {/* Floating Demo Announcement */}
+ {isDemoInfoVisible && (
+ <div className='fixed z-999 bottom-0 mb-2 left-1/2 -translate-x-1/2 lg:mb-4 bg-gray-700 rounded-full px-3.5 py-2 text-sm text-white duration-300 ease-in-out hover:bg-gray-800 focus-visible:outline focus-visible:outline-2 focus-visible:outline-indigo-600'>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
--- template/app/src/admin/dashboards/users/UsersDashboardPage.tsx
+++ opensaas-sh/app/src/admin/dashboards/users/UsersDashboardPage.tsx
@@ -1,14 +1,50 @@
import { type AuthUser } from 'wasp/auth';
+import { useState, useEffect } from 'react';
import UsersTable from './UsersTable';
import Breadcrumb from '../../layout/Breadcrumb';
import DefaultLayout from '../../layout/DefaultLayout';
import { useRedirectHomeUnlessUserIsAdmin } from '../../useRedirectHomeUnlessUserIsAdmin';

const Users = ({ user }: { user: AuthUser }) => {
- useRedirectHomeUnlessUserIsAdmin({user})
+ const [isDemoInfoVisible, setIsDemoInfoVisible] = useState(false);
+ useRedirectHomeUnlessUserIsAdmin({user});
+
+ useEffect(() => {
+ try {
+ if (localStorage.getItem('isDemoInfoVisible') === 'false') {
+ // do nothing
+ } else {
+ setIsDemoInfoVisible(true);
+ }
+ } catch (error) {
+ console.error(error);
+ }
+ }, []);
+
+ const handleDemoInfoClose = () => {
+ try {
+ localStorage.setItem('isDemoInfoVisible', 'false');
+ setIsDemoInfoVisible(false);
+ } catch (error) {
+ console.error(error);
+ }
+ };

return (
<DefaultLayout user={user}>
+ {/* Floating Demo Announcement */}
+ {isDemoInfoVisible && (
+ <div className='fixed z-999 bottom-0 mb-2 left-1/2 -translate-x-1/2 lg:mb-4 bg-gray-700 rounded-full px-3.5 py-2 text-sm text-white duration-300 ease-in-out hover:bg-gray-800 focus-visible:outline focus-visible:outline-2 focus-visible:outline-indigo-600'>
+ <div className='px-4 flex flex-row gap-2 items-center my-1'>
+ <span className='text-gray-100'>
+ You are viewing mock user data only ;)
+ </span>
+ <button className=' pl-2.5 text-gray-400 text-xl font-bold' onClick={() => handleDemoInfoClose()}>
+ X
+ </button>
+ </div>
+ </div>
+ )}
<Breadcrumb pageName='Users' />
<div className='flex flex-col gap-10'>
<UsersTable />
Loading

0 comments on commit 94a6b8f

Please sign in to comment.