History

Refactor onboarding and session components for clarity and functionality

- Updated onboarding page description to remove reference to WorkOS. - Enhanced app shell to include a login button with an icon and improved layout for guest mode. - Changed delivery provider default from WorkOS to email in members view and removed unnecessary provider display.

Rhys Sullivan committed 9 months ago

Commit 44014711 parent 81a52ee4 files · +27 −22Browse files

Unified · Split

4 files
  1. executor/apps/web/src/app/onboarding/page.tsx +1 −1
  2. executor/apps/web/src/components/app-shell.tsx +16 −19
  3. executor/apps/web/src/components/members-view.tsx +2 −2
  4. executor/package.json +8 −0
executor/apps/web/src/app/onboarding/page.tsx+1−1
@@ -60,7 +60,7 @@ export default function OnboardingPage() { · 59 unmodified lines
60 <CardHeader>60 <CardHeader>
61 <CardTitle>Sign in required</CardTitle>61 <CardTitle>Sign in required</CardTitle>
62 <CardDescription>62 <CardDescription>
63 You need to sign in with WorkOS before setting up an organization.63 You need to sign in before setting up an organization.
64 </CardDescription>64 </CardDescription>
65 </CardHeader>65 </CardHeader>
66 <CardFooter className="justify-between gap-2">66 <CardFooter className="justify-between gap-2">
executor/apps/web/src/components/app-shell.tsx+16−19
@@ -15,6 +15,7 @@ import { · 14 unmodified lines
15 Plus,15 Plus,
16 Check,16 Check,
17 Settings,17 Settings,
18 LogIn,
18} from "lucide-react";19} from "lucide-react";
19import { Button } from "@/components/ui/button";20import { Button } from "@/components/ui/button";
20import { Sheet, SheetContent, SheetTrigger, SheetTitle } from "@/components/ui/sheet";21import { Sheet, SheetContent, SheetTrigger, SheetTitle } from "@/components/ui/sheet";
@@ -324,9 +325,7 @@ function WorkspaceSelector({ inHeader = false }: { inHeader?: boolean }) { · 303 unmodified lines
324 <Plus className="mr-2 h-3.5 w-3.5" />325 <Plus className="mr-2 h-3.5 w-3.5" />
325 New organization326 New organization
326 </DropdownMenuItem>327 </DropdownMenuItem>
327 <DropdownMenuLabel className="text-[10px] text-muted-foreground">328
328 Invites via WorkOS
329 </DropdownMenuLabel>
330 </>329 </>
331 ) : null}330 ) : null}
332 </DropdownMenuContent>331 </DropdownMenuContent>
@@ -480,25 +479,23 @@ function SessionInfo() { · 147 unmodified lines
480 </DropdownMenuContent>479 </DropdownMenuContent>
481 </DropdownMenu>480 </DropdownMenu>
482 ) : (481 ) : (
483 <div className="px-3 py-2">482 <div className="px-3 py-3 space-y-2">
484 <p className="text-[11px] text-muted-foreground">Guest mode</p>483 {workosEnabled ? (
484 <Link href={signInHref} className="block">
485 <Button
486 variant="outline"
487 className="w-full h-9 justify-center gap-2 text-xs font-medium"
488 >
489 <LogIn className="h-3.5 w-3.5" />
490 Sign in
491 </Button>
492 </Link>
493 ) : (
494 <p className="text-[11px] text-muted-foreground text-center">Guest mode</p>
495 )}
485 </div>496 </div>
486 )}497 )}
487 498
488 {!isSignedInToWorkos && workosEnabled ? (
489 <div className="px-3 pb-3">
490 <Link href={signInHref} className="inline-flex">
491 <Button variant="outline" size="sm" className="h-7 text-[11px]">
492 Sign in
493 </Button>
494 </Link>
495 </div>
496 ) : null}
497 <div className="px-3 pt-1 pb-2">
498 <p className="text-[10px] text-muted-foreground">
499 Auth: {clientConfig?.authProviderMode === "workos" ? "WorkOS" : "local"}
500 </p>
501 </div>
502 </div>499 </div>
503 );500 );
504}501}
executor/apps/web/src/components/members-view.tsx+2−2
@@ -81,7 +81,7 @@ export function MembersView({ showHeader = true }: MembersViewProps) { · 80 unmodified lines
81 sessionId: context?.sessionId ?? undefined,81 sessionId: context?.sessionId ?? undefined,
82 });82 });
83 setInviteState("sent");83 setInviteState("sent");
84 const deliveryProvider = result.delivery.provider ?? "WorkOS";84 const deliveryProvider = result.delivery.provider ?? "email";
85 const deliveryState = result.delivery.state ?? "queued";85 const deliveryState = result.delivery.state ?? "queued";
86 setInviteMessage(`Invite ${deliveryState} via ${deliveryProvider}.`);86 setInviteMessage(`Invite ${deliveryState} via ${deliveryProvider}.`);
87 setInviteEmail("");87 setInviteEmail("");
@@ -153,7 +153,7 @@ export function MembersView({ showHeader = true }: MembersViewProps) { · 65 unmodified lines
153 {inviteState === "sending" ? "Sending..." : "Send invite"}153 {inviteState === "sending" ? "Sending..." : "Send invite"}
154 </Button>154 </Button>
155 </form>155 </form>
156 <p className="text-xs text-muted-foreground">Provider: WorkOS</p>156
157 {inviteMessage ? (157 {inviteMessage ? (
158 <p className={inviteState === "failed" ? "text-xs text-destructive" : "text-xs text-muted-foreground"}>158 <p className={inviteState === "failed" ? "text-xs text-destructive" : "text-xs text-muted-foreground"}>
159 {inviteMessage}159 {inviteMessage}
executor/package.json+8−0
@@ -0,0 +1,8 @@
1{
2 "name": "executor",
3 "private": true,
4 "type": "module",
5 "dependencies": {
6 "convex": "^1.31.7"
7 }
8}