diff --git a/.github/workflows/autofix-tabby-ui.yml b/.github/workflows/autofix-tabby-ui.yml
new file mode 100644
index 0000000..fc5295b
--- /dev/null
+++ b/.github/workflows/autofix-tabby-ui.yml
@@ -0,0 +1,42 @@
+name: autofix.ci
+
+on:
+ pull_request:
+ branches: ["main" ]
+ paths:
+ - '.github/workflows/autofix-tabby-ui.yml'
+ - 'ee/tabby-ui/**'
+
+permissions:
+ contents: read
+
+concurrency:
+ group: ${{ github.workflow_ref }}-${{ github.head_ref || github.ref_name }}
+
+ # If this is enabled it will cancel current running and start latest
+ cancel-in-progress: true
+
+jobs:
+ autofix:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: recursive
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: '18.x'
+ cache: yarn
+ cache-dependency-path: 'yarn.lock'
+
+ - name: Install dependencies
+ working-directory: ./ee/tabby-ui
+ run: yarn install
+
+ - name: Format
+ working-directory: ./ee/tabby-ui
+ run: yarn format:write
+
+ - uses: autofix-ci/action@d3e591514b99d0fca6779455ff8338516663f7cc
diff --git a/ee/tabby-ui/components/login-button.tsx b/ee/tabby-ui/components/login-button.tsx
deleted file mode 100644
index ae8f842..0000000
--- a/ee/tabby-ui/components/login-button.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-'use client'
-
-import * as React from 'react'
-import { signIn } from 'next-auth/react'
-
-import { cn } from '@/lib/utils'
-import { Button, type ButtonProps } from '@/components/ui/button'
-import { IconGitHub, IconSpinner } from '@/components/ui/icons'
-
-interface LoginButtonProps extends ButtonProps {
- showGithubIcon?: boolean
- text?: string
-}
-
-export function LoginButton({
- text = 'Login with GitHub',
- showGithubIcon = true,
- className,
- ...props
-}: LoginButtonProps) {
- const [isLoading, setIsLoading] = React.useState(false)
- return (
-
- )
-}
diff --git a/ee/tabby-ui/components/user-menu.tsx b/ee/tabby-ui/components/user-menu.tsx
deleted file mode 100644
index ce65ad9..0000000
--- a/ee/tabby-ui/components/user-menu.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-'use client'
-
-import Image from 'next/image'
-import { type Session } from 'next-auth'
-import { signOut } from 'next-auth/react'
-
-import { Button } from '@/components/ui/button'
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuSeparator,
- DropdownMenuTrigger
-} from '@/components/ui/dropdown-menu'
-import { IconExternalLink } from '@/components/ui/icons'
-
-export interface UserMenuProps {
- user: Session['user']
-}
-
-function getUserInitials(name: string) {
- const [firstName, lastName] = name.split(' ')
- return lastName ? `${firstName[0]}${lastName[0]}` : firstName.slice(0, 2)
-}
-
-export function UserMenu({ user }: UserMenuProps) {
- return (
-
-
-
-
-
-
-
- {user?.name}
- {user?.email}
-
-
-
-
- Vercel Homepage
-
-
-
-
- signOut({
- callbackUrl: '/'
- })
- }
- className="text-xs"
- >
- Log Out
-
-
-
-
- )
-}
diff --git a/ee/tabby-ui/package.json b/ee/tabby-ui/package.json
index 53cad01..eacbe8a 100644
--- a/ee/tabby-ui/package.json
+++ b/ee/tabby-ui/package.json
@@ -43,7 +43,6 @@
"lodash-es": "^4.17.21",
"nanoid": "^4.0.2",
"next": "^13.4.7",
- "next-auth": "0.0.0-manual.83c4ebd1",
"next-themes": "^0.2.1",
"openai-edge": "^0.5.1",
"react": "^18.2.0",
diff --git a/ee/tabby-ui/yarn.lock b/ee/tabby-ui/yarn.lock
index 5bbcc95..7f4ca9b 100644
--- a/ee/tabby-ui/yarn.lock
+++ b/ee/tabby-ui/yarn.lock
@@ -50,18 +50,6 @@
dependencies:
node-fetch "^2.6.1"
-"@auth/core@experimental":
- version "0.0.0-manual.e9863699"
- resolved "https://registry.yarnpkg.com/@auth/core/-/core-0.0.0-manual.e9863699.tgz#5816c1eac2eaeaadc2f6c6cabddd782cf0db88f0"
- integrity sha512-/hVzGuFw7nAZimliD8kpuKnNjvkRu+jpaVhYB/FaIXLNJFNwhbO2MgXBnr5tvLIHgRJnR5C9UN5RNpQXiFHuSA==
- dependencies:
- "@panva/hkdf" "^1.0.4"
- cookie "0.5.0"
- jose "^4.11.1"
- oauth4webapi "^2.0.6"
- preact "10.11.3"
- preact-render-to-string "5.2.3"
-
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13":
version "7.22.13"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
@@ -1159,11 +1147,6 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@panva/hkdf@^1.0.4":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@panva/hkdf/-/hkdf-1.1.1.tgz#ab9cd8755d1976e72fc77a00f7655a64efe6cd5d"
- integrity sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==
-
"@parcel/watcher-android-arm64@2.3.0":
version "2.3.0"
resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz#d82e74bb564ebd4d8a88791d273a3d2bd61e27ab"
@@ -2724,11 +2707,6 @@ convert-source-map@^2.0.0:
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
-cookie@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
- integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
-
cosmiconfig@^8.1.0, cosmiconfig@^8.1.3:
version "8.3.6"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3"
@@ -4352,11 +4330,6 @@ jiti@^1.18.2:
resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42"
integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==
-jose@^4.11.1:
- version "4.14.6"
- resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.6.tgz#94dca1d04a0ad8c6bff0998cdb51220d473cc3af"
- integrity sha512-EqJPEUlZD0/CSUMubKtMaYUOtWe91tZXTWMJZoKSbLk+KtdhNdcvppH8lA9XwVu2V4Ailvsj0GBZJ2ZwDjfesQ==
-
jose@^5.0.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/jose/-/jose-5.1.1.tgz#d61b923baa6bdeb01040afae8295a084c4b9eb58"
@@ -5195,13 +5168,6 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-next-auth@0.0.0-manual.83c4ebd1:
- version "0.0.0-manual.83c4ebd1"
- resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-0.0.0-manual.83c4ebd1.tgz#224ae294c68da5c86b759b2ab67444fb17248d35"
- integrity sha512-6nUXtVrZqTWvVz2NhUB/xbMyzxUSQycQWOquACwdpk63AcnZ3g01v+W0UX9paqkGIdqLPtI/pL6rA2N+MT58SQ==
- dependencies:
- "@auth/core" experimental
-
next-themes@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.2.1.tgz#0c9f128e847979daf6c67f70b38e6b6567856e45"
@@ -5318,11 +5284,6 @@ nullthrows@^1.1.1:
resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
-oauth4webapi@^2.0.6:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/oauth4webapi/-/oauth4webapi-2.3.0.tgz#d01aeb83b60dbe3ff9ef1c6ec4a39e29c7be7ff6"
- integrity sha512-JGkb5doGrwzVDuHwgrR4nHJayzN4h59VCed6EW8Tql6iHDfZIabCJvg6wtbn5q6pyB2hZruI3b77Nudvq7NmvA==
-
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -5735,18 +5696,6 @@ postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4:
picocolors "^1.0.0"
source-map-js "^1.0.2"
-preact-render-to-string@5.2.3:
- version "5.2.3"
- resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-5.2.3.tgz#23d17376182af720b1060d5a4099843c7fe92fe4"
- integrity sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==
- dependencies:
- pretty-format "^3.8.0"
-
-preact@10.11.3:
- version "10.11.3"
- resolved "https://registry.yarnpkg.com/preact/-/preact-10.11.3.tgz#8a7e4ba19d3992c488b0785afcc0f8aa13c78d19"
- integrity sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==
-
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -5757,11 +5706,6 @@ prettier@^2.7.1:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
-pretty-format@^3.8.0:
- version "3.8.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385"
- integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==
-
prismjs@^1.27.0:
version "1.29.0"
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12"