mirror of
https://github.com/supabase/supabase.git
synced 2026-10-08 10:55:06 +03:00
* Migrate database-new to use server actions. * Revert the package-lock.json changes, leftover from a rebased commit. * Add server actions config back * Cleanup * Cleanup * Undo --------- Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com> Co-authored-by: Terry Sutton <saltcod@gmail.com>
60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
'use client'
|
|
import { useAppStateSnapshot } from '@/lib/state'
|
|
import { createClient } from '@/lib/supabase/client'
|
|
import { User } from '@supabase/supabase-js'
|
|
import Link from 'next/link'
|
|
import { useRouter, useSelectedLayoutSegment } from 'next/navigation'
|
|
import { useState } from 'react'
|
|
import { Button } from 'ui'
|
|
import AvatarDropdown from './AvatarDropdown'
|
|
import NoUserDropdown from './NoUserDropdown'
|
|
import SaveSchemaDropdown from './SaveSchemaDropdown'
|
|
import ThemeSwitcherButton from './ThemeSwitcher'
|
|
import ToggleCodeEditorButton from './ToggleCodeEditorButton'
|
|
|
|
interface HeaderActionsProps {
|
|
user: User | null
|
|
}
|
|
const HeaderActions = ({ user }: HeaderActionsProps) => {
|
|
const supabase = createClient()
|
|
const router = useRouter()
|
|
const segment = useSelectedLayoutSegment()
|
|
|
|
const [currentUser, setCurrentUser] = useState<User | null>(user)
|
|
|
|
async function signout() {
|
|
const { error } = await supabase.auth.signOut()
|
|
if (error) {
|
|
console.log('Error logging out:', error.message)
|
|
return
|
|
}
|
|
|
|
router.push('/')
|
|
setCurrentUser(null)
|
|
}
|
|
|
|
return (
|
|
<div className="flex items-center gap-x-2">
|
|
{segment && segment.includes('thread') && (
|
|
<div className="hidden xl:flex items-center gap-x-2">
|
|
<ToggleCodeEditorButton />
|
|
<SaveSchemaDropdown />
|
|
<div className="border-r py-3" />
|
|
</div>
|
|
)}
|
|
|
|
<Button type="default" className="hidden xl:block">
|
|
<Link href="/">New conversation</Link>
|
|
</Button>
|
|
|
|
{/* {currentUser ? (
|
|
<AvatarDropdown currentUser={currentUser} signout={signout} />
|
|
) : (
|
|
<NoUserDropdown />
|
|
)} */}
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default HeaderActions
|