From 4592140d767f120a1030065bb82191e5ba16f240 Mon Sep 17 00:00:00 2001 From: Kieran Klukas <92754843+kcoderhtml@users.noreply.github.com> Date: Mon, 29 Apr 2024 14:41:30 -0400 Subject: [PATCH 1/5] Add event creation on join page --- src/pages/join/[joinCode].astro | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/pages/join/[joinCode].astro b/src/pages/join/[joinCode].astro index 39ca5b4..5a3659c 100644 --- a/src/pages/join/[joinCode].astro +++ b/src/pages/join/[joinCode].astro @@ -4,10 +4,7 @@ import { SignIn } from "auth-astro/components"; import { getSession } from "auth-astro/server"; import { type Session } from "@auth/core/types"; -import { db } from "astro:db"; -import { Invite } from "astro:db"; -import { like } from "astro:db"; -import { Organization } from "astro:db"; +import { db, like, Event, Invite, Organization } from "astro:db"; import { LogSnag } from "logsnag"; @@ -82,6 +79,16 @@ if (session && session.user.role === "guest") { name: session.teamName, image: session.teamImage, }); + await db.insert(Event).values({ + name: "Welcome to MagicSnap! 🎉", + date: new Date(Date.now() + 1000 * 60 * 60 * 2), + team: session.team, + comments: "A default event created by workspace connection", + location: "MagicSnap", + statusGoing: session.user.id, + statusNotGoing: "", + statusMaybe: "", + }); await logsnag.track({ channel: "join-code", From 61f2d6e29b8dc2a9f9685f1713dd4b3320730ba7 Mon Sep 17 00:00:00 2001 From: Kieran Klukas <92754843+kcoderhtml@users.noreply.github.com> Date: Mon, 29 Apr 2024 14:43:21 -0400 Subject: [PATCH 2/5] feat: add newuser flag --- auth.config.mjs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/auth.config.mjs b/auth.config.mjs index df2f44b..d79603f 100644 --- a/auth.config.mjs +++ b/auth.config.mjs @@ -16,6 +16,7 @@ export default defineConfig({ clientSecret: import.meta.env.SLACK_CLIENT_SECRET, checks: ["pkce", "nonce"], async profile(profile) { + let newUser = false; profile["https://slack.com/team_id"] = "slack-" + profile["https://slack.com/team_id"]; @@ -92,6 +93,7 @@ export default defineConfig({ }); role[0] = { role: "admin" }; + newUser = true; } else { await db.insert(User).values({ userId: profile["https://slack.com/user_id"], @@ -138,6 +140,7 @@ export default defineConfig({ }); role[0] = { role: "user" }; + newUser = true; } } else { role[0] = { role: "guest" }; @@ -176,6 +179,7 @@ export default defineConfig({ teamName: profile["https://slack.com/team_name"], teamImage: profile["https://slack.com/team_image_230"], role: role[0].role || "user", + newUser: newUser, }; }, }), @@ -189,6 +193,7 @@ export default defineConfig({ token.teamImage = user.teamImage; token.role = user.role; token.id = user.id; + token.newUser = user.newUser; } return token; }, @@ -200,6 +205,7 @@ export default defineConfig({ session.teamImage = token.teamImage; session.user.role = token.role; session.user.id = token.id; + session.newUser = token.newUser; } return session; }, From 977ae83f2582621b72c965acbf57e19b35e7e113 Mon Sep 17 00:00:00 2001 From: Kieran Klukas <92754843+kcoderhtml@users.noreply.github.com> Date: Mon, 29 Apr 2024 14:46:05 -0400 Subject: [PATCH 3/5] Add newuser flag to ExtendedSession type in dashboard.astro --- src/pages/dashboard.astro | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/pages/dashboard.astro b/src/pages/dashboard.astro index ec4fdd9..9131e19 100644 --- a/src/pages/dashboard.astro +++ b/src/pages/dashboard.astro @@ -13,6 +13,7 @@ type ExtendedSession = { user: { role: string; }; + newUser: boolean; }; const session = (await getSession(Astro.request)) as Session & ExtendedSession; @@ -193,6 +194,13 @@ const users = await db.select().from(User).where(like(User.team, session.team)); } events

+ { + session.newUser && ( +
+

Since you are a new user we recommend that you first fillout your allergies here then come back and set your availability!

+
+ ) + } { session.user.role === "admin" && (
From eb19329e9f48e6976bd734e2103c2f9d8db90c5c Mon Sep 17 00:00:00 2001 From: Kieran Klukas <92754843+kcoderhtml@users.noreply.github.com> Date: Mon, 29 Apr 2024 15:05:01 -0400 Subject: [PATCH 4/5] Add canvas-confetti library for celebratory confetti animation on successful team connection --- bun.lockb | Bin 286684 -> 287444 bytes package.json | 2 + src/pages/join/[joinCode].astro | 106 ++++++++++++++++++++++++-------- 3 files changed, 83 insertions(+), 25 deletions(-) diff --git a/bun.lockb b/bun.lockb index 1439a7df9a776254e5ba5098fe326657a5d80522..94f70ea6a08ae777a748f2adadc3bc1d3658e8f4 100755 GIT binary patch delta 52630 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 C6B(xf delta 52205 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 diff --git a/package.json b/package.json index c6a2096..d994371 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,10 @@ "@astrojs/node": "^8.2.5", "@astrojs/tailwind": "^5.1.0", "@auth/core": "^0.18.6", + "@types/canvas-confetti": "^1.6.4", "astro": "^4.5.10", "auth-astro": "^4.1.1", + "canvas-confetti": "^1.9.2", "jwt-decode": "^4.0.0", "logsnag": "^1.0.0", "magick.css": "^1.0.5", diff --git a/src/pages/join/[joinCode].astro b/src/pages/join/[joinCode].astro index 5a3659c..03c5bb6 100644 --- a/src/pages/join/[joinCode].astro +++ b/src/pages/join/[joinCode].astro @@ -73,30 +73,29 @@ if (!team) { } if (session && session.user.role === "guest") { - await db.delete(Invite).where(like(Invite.verificationCode, joinCode)); - await db.insert(Organization).values({ - team: session.team, - name: session.teamName, - image: session.teamImage, - }); - await db.insert(Event).values({ - name: "Welcome to MagicSnap! 🎉", - date: new Date(Date.now() + 1000 * 60 * 60 * 2), - team: session.team, - comments: "A default event created by workspace connection", - location: "MagicSnap", - statusGoing: session.user.id, - statusNotGoing: "", - statusMaybe: "", - }); - - await logsnag.track({ - channel: "join-code", - event: "create-team", - icon: "🪄", - user_id: session.user.id, - notify: true, - }); + // await db.delete(Invite).where(like(Invite.verificationCode, joinCode)); + // await db.insert(Organization).values({ + // team: session.team, + // name: session.teamName, + // image: session.teamImage, + // }); + // await db.insert(Event).values({ + // name: "Welcome to MagicSnap! 🎉", + // date: new Date(Date.now() + 1000 * 60 * 60 * 2), + // team: session.team, + // comments: "A default event created by workspace connection", + // location: "MagicSnap", + // statusGoing: session.user.id, + // statusNotGoing: "", + // statusMaybe: "", + // }); + // await logsnag.track({ + // channel: "join-code", + // event: "create-team", + // icon: "🪄", + // user_id: session.user.id, + // notify: true, + // }); } --- @@ -126,7 +125,7 @@ if (session && session.user.role === "guest") { { session && session.user.role === "guest" && ( <> -
+

You have successfully connected your team {team.teamName} to MagicSnap! You can now sign in to MagicSnap using your account and @@ -143,6 +142,63 @@ if (session && session.user.role === "guest") { } + +