Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
bit-pm
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
燕伟桐
bit-pm
Commits
ba60b80b
Unverified
提交
ba60b80b
authored
5月 06, 2025
作者:
Will Chen
提交者:
GitHub
5月 06, 2025
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Provide a way to disconnect supabase (#95)
上级
20362d7b
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
66 行增加
和
0 行删除
+66
-0
SupabaseIntegration.tsx
src/components/SupabaseIntegration.tsx
+64
-0
settings.tsx
src/pages/settings.tsx
+2
-0
没有找到文件。
src/components/SupabaseIntegration.tsx
0 → 100644
浏览文件 @
ba60b80b
import
{
useState
}
from
"react"
;
import
{
Button
}
from
"@/components/ui/button"
;
// We might need a Supabase icon here, but for now, let's use a generic one or text.
// import { Supabase } from "lucide-react"; // Placeholder
import
{
DatabaseZap
}
from
"lucide-react"
;
// Using DatabaseZap as a placeholder
import
{
useSettings
}
from
"@/hooks/useSettings"
;
import
{
showSuccess
,
showError
}
from
"@/lib/toast"
;
export
function
SupabaseIntegration
()
{
const
{
settings
,
updateSettings
}
=
useSettings
();
const
[
isDisconnecting
,
setIsDisconnecting
]
=
useState
(
false
);
const
handleDisconnectFromSupabase
=
async
()
=>
{
setIsDisconnecting
(
true
);
try
{
// Clear the entire supabase object in settings
const
result
=
await
updateSettings
({
supabase
:
undefined
,
});
if
(
result
)
{
showSuccess
(
"Successfully disconnected from Supabase"
);
}
else
{
showError
(
"Failed to disconnect from Supabase"
);
}
}
catch
(
err
:
any
)
{
showError
(
err
.
message
||
"An error occurred while disconnecting from Supabase"
);
}
finally
{
setIsDisconnecting
(
false
);
}
};
// Check if there's any Supabase accessToken to determine connection status
const
isConnected
=
!!
settings
?.
supabase
?.
accessToken
;
if
(
!
isConnected
)
{
return
null
;
}
return
(
<
div
className=
"flex items-center justify-between"
>
<
div
>
<
h3
className=
"text-sm font-medium text-gray-700 dark:text-gray-300"
>
Supabase Integration
</
h3
>
<
p
className=
"text-xs text-gray-500 dark:text-gray-400 mt-1"
>
Your account is connected to Supabase.
</
p
>
</
div
>
<
Button
onClick=
{
handleDisconnectFromSupabase
}
variant=
"destructive"
size=
"sm"
disabled=
{
isDisconnecting
}
className=
"flex items-center gap-2"
>
{
isDisconnecting
?
"Disconnecting..."
:
"Disconnect from Supabase"
}
<
DatabaseZap
className=
"h-4 w-4"
/>
{
/* Placeholder icon */
}
</
Button
>
</
div
>
);
}
src/pages/settings.tsx
浏览文件 @
ba60b80b
...
@@ -12,6 +12,7 @@ import { Button } from "@/components/ui/button";
...
@@ -12,6 +12,7 @@ import { Button } from "@/components/ui/button";
import
{
ArrowLeft
}
from
"lucide-react"
;
import
{
ArrowLeft
}
from
"lucide-react"
;
import
{
useRouter
}
from
"@tanstack/react-router"
;
import
{
useRouter
}
from
"@tanstack/react-router"
;
import
{
GitHubIntegration
}
from
"@/components/GitHubIntegration"
;
import
{
GitHubIntegration
}
from
"@/components/GitHubIntegration"
;
import
{
SupabaseIntegration
}
from
"@/components/SupabaseIntegration"
;
export
default
function
SettingsPage
()
{
export
default
function
SettingsPage
()
{
const
{
theme
,
setTheme
}
=
useTheme
();
const
{
theme
,
setTheme
}
=
useTheme
();
...
@@ -142,6 +143,7 @@ export default function SettingsPage() {
...
@@ -142,6 +143,7 @@ export default function SettingsPage() {
</
h2
>
</
h2
>
<
div
className=
"space-y-4"
>
<
div
className=
"space-y-4"
>
<
GitHubIntegration
/>
<
GitHubIntegration
/>
<
SupabaseIntegration
/>
</
div
>
</
div
>
</
div
>
</
div
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论