[PULSE-50] Organizations rename, remove Tools page, post-login profile fetch, welcome page UX #18
@@ -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))
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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
8
package-lock.json
generated
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user