- 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.
Unified · Split
| @@ -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"> |
| @@ -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"; |
| 19 | import { Button } from "@/components/ui/button"; | 20 | import { Button } from "@/components/ui/button"; |
| 20 | import { Sheet, SheetContent, SheetTrigger, SheetTitle } from "@/components/ui/sheet"; | 21 | import { 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 organization | 326 | 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 | } |
| @@ -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} |
| @@ -0,0 +1,8 @@ | |||
| 1 | { | ||
| 2 | "name": "executor", | ||
| 3 | "private": true, | ||
| 4 | "type": "module", | ||
| 5 | "dependencies": { | ||
| 6 | "convex": "^1.31.7" | ||
| 7 | } | ||
| 8 | } | ||