[PULSE-50] Organizations rename, remove Tools page, post-login profile fetch, welcome page UX #18

Merged
uz1mani merged 11 commits from staging into main 2026-02-09 08:59:05 +00:00
11 changed files with 626 additions and 154 deletions
Showing only changes of commit 03fcfba180 - Show all commits

View File

@@ -36,7 +36,9 @@ function AuthCallbackContent() {
if (localStorage.getItem('pulse_pending_checkout')) { if (localStorage.getItem('pulse_pending_checkout')) {
router.push('/welcome') router.push('/welcome')
} else { } else {
router.push('/') const raw = searchParams.get('returnTo') || '/'
const safe = (typeof raw === 'string' && raw.startsWith('/') && !raw.startsWith('//')) ? raw : '/'
router.push(safe)
} }
} else { } else {
setError(authMessageFromErrorType(result.error as AuthErrorType)) setError(authMessageFromErrorType(result.error as AuthErrorType))

View File

@@ -26,7 +26,7 @@ export default function LayoutContent({ children }: { children: React.ReactNode
} }
}, [auth.user]) }, [auth.user])
const handleSwitchWorkspace = async (orgId: string | null) => { const handleSwitchOrganization = async (orgId: string | null) => {
if (!orgId) return // Pulse doesn't support personal workspace if (!orgId) return // Pulse doesn't support personal workspace
try { try {
const { access_token } = await switchContext(orgId) const { access_token } = await switchContext(orgId)
@@ -56,9 +56,9 @@ export default function LayoutContent({ children }: { children: React.ReactNode
appName="Pulse" appName="Pulse"
orgs={orgs} orgs={orgs}
activeOrgId={auth.user?.org_id} activeOrgId={auth.user?.org_id}
onSwitchWorkspace={handleSwitchWorkspace} onSwitchOrganization={handleSwitchOrganization}
onCreateOrganization={handleCreateOrganization} onCreateOrganization={handleCreateOrganization}
allowPersonalWorkspace={false} allowPersonalOrganization={false}
showFaq={false} showFaq={false}
showSecurity={false} showSecurity={false}
showPricing={true} showPricing={true}

View File

@@ -686,9 +686,15 @@ function WelcomeContent() {
variant="primary" variant="primary"
className="flex-1" className="flex-1"
disabled={siteLoading || !siteName.trim() || !siteDomain.trim()} disabled={siteLoading || !siteName.trim() || !siteDomain.trim()}
isLoading={siteLoading}
> >
Add site {siteLoading ? (
<>
<span className="inline-block h-4 w-4 border-2 border-current border-t-transparent rounded-full animate-spin mr-2" aria-hidden />
Adding...
</>
) : (
'Add site'
)}
</Button> </Button>
<Button <Button
type="button" type="button"

8
package-lock.json generated
View File

@@ -8,7 +8,7 @@
"name": "pulse-frontend", "name": "pulse-frontend",
"version": "0.1.3", "version": "0.1.3",
"dependencies": { "dependencies": {
"@ciphera-net/ui": "^0.0.48", "@ciphera-net/ui": "^0.0.49",
"@ducanh2912/next-pwa": "^10.2.9", "@ducanh2912/next-pwa": "^10.2.9",
"axios": "^1.13.2", "axios": "^1.13.2",
"country-flag-icons": "^1.6.4", "country-flag-icons": "^1.6.4",
@@ -1467,9 +1467,9 @@
} }
}, },
"node_modules/@ciphera-net/ui": { "node_modules/@ciphera-net/ui": {
"version": "0.0.48", "version": "0.0.49",
"resolved": "https://npm.pkg.github.com/download/@ciphera-net/ui/0.0.48/20eedc6319567fff80530d865ebbed6e6f784dab", "resolved": "https://npm.pkg.github.com/download/@ciphera-net/ui/0.0.49/ef6f7f06a134bc3d3b4cb1086f689ddb34f1652a",
"integrity": "sha512-kDrGV7tzAjeiz7MtK5G81iY08Zg4NxHTlDNkH5/Pkl2aSpyraf04/J/pGshChjdXMdioXrJA7JU8YH+GlI1LfA==", "integrity": "sha512-ga2n0kO7JeOFzVVRX+FU5iQxodv2yE/hUnlEUHEomorKzWCADM9wAOLGcxi8mcVz49jy/4IQlHRdpF9LH64uQg==",
"dependencies": { "dependencies": {
"@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-icons": "^1.3.0",
"clsx": "^2.1.0", "clsx": "^2.1.0",

View File

@@ -10,7 +10,7 @@
"type-check": "tsc --noEmit" "type-check": "tsc --noEmit"
}, },
"dependencies": { "dependencies": {
"@ciphera-net/ui": "^0.0.48", "@ciphera-net/ui": "^0.0.49",
"@ducanh2912/next-pwa": "^10.2.9", "@ducanh2912/next-pwa": "^10.2.9",
"axios": "^1.13.2", "axios": "^1.13.2",
"country-flag-icons": "^1.6.4", "country-flag-icons": "^1.6.4",