feat: add confirm ui (#4625)

This commit is contained in:
crazywoola 2024-05-23 20:15:51 +08:00 committed by GitHub
parent 24624491cd
commit 10c61da686
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 172 additions and 143 deletions

View File

@ -22,6 +22,7 @@ import Tag from '@/app/components/base/tag'
import Switch from '@/app/components/base/switch' import Switch from '@/app/components/base/switch'
import Divider from '@/app/components/base/divider' import Divider from '@/app/components/base/divider'
import CopyFeedback from '@/app/components/base/copy-feedback' import CopyFeedback from '@/app/components/base/copy-feedback'
import Confirm from '@/app/components/base/confirm'
import ShareQRCode from '@/app/components/base/qrcode' import ShareQRCode from '@/app/components/base/qrcode'
import SecretKeyButton from '@/app/components/develop/secret-key/secret-key-button' import SecretKeyButton from '@/app/components/develop/secret-key/secret-key-button'
import type { AppDetailResponse } from '@/models/app' import type { AppDetailResponse } from '@/models/app'
@ -57,6 +58,8 @@ function AppCard({
const [showEmbedded, setShowEmbedded] = useState(false) const [showEmbedded, setShowEmbedded] = useState(false)
const [showCustomizeModal, setShowCustomizeModal] = useState(false) const [showCustomizeModal, setShowCustomizeModal] = useState(false)
const [genLoading, setGenLoading] = useState(false) const [genLoading, setGenLoading] = useState(false)
const [showConfirmDelete, setShowConfirmDelete] = useState(false)
const { t } = useTranslation() const { t } = useTranslation()
const OPERATIONS_MAP = useMemo(() => { const OPERATIONS_MAP = useMemo(() => {
@ -176,6 +179,20 @@ function AppCard({
className={'hover:bg-gray-200'} className={'hover:bg-gray-200'}
/> />
{/* button copy link/ button regenerate */} {/* button copy link/ button regenerate */}
{showConfirmDelete && (
<Confirm
type='warning'
title={t('appOverview.overview.appInfo.regenerate')}
content={''}
isShow={showConfirmDelete}
onClose={() => setShowConfirmDelete(false)}
onConfirm={() => {
onGenCode()
setShowConfirmDelete(false)
}}
onCancel={() => setShowConfirmDelete(false)}
/>
)}
{isApp && isCurrentWorkspaceManager && ( {isApp && isCurrentWorkspaceManager && (
<Tooltip <Tooltip
content={t('appOverview.overview.appInfo.regenerate') || ''} content={t('appOverview.overview.appInfo.regenerate') || ''}
@ -183,7 +200,7 @@ function AppCard({
> >
<div <div
className="w-8 h-8 ml-0.5 cursor-pointer hover:bg-gray-200 rounded-lg" className="w-8 h-8 ml-0.5 cursor-pointer hover:bg-gray-200 rounded-lg"
onClick={onGenCode} onClick={() => setShowConfirmDelete(true)}
> >
<div <div
className={`w-full h-full ${style.refreshIcon} ${ className={`w-full h-full ${style.refreshIcon} ${

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: 'Öffentliche URL', accessibleAddress: 'Öffentliche URL',
preview: 'Vorschau', preview: 'Vorschau',
regenerate: 'Regenerieren', regenerate: 'Regenerieren',
regenerateNotice: 'Möchten Sie die öffentliche URL neu generieren?',
preUseReminder: 'Bitte aktivieren Sie WebApp, bevor Sie fortfahren.', preUseReminder: 'Bitte aktivieren Sie WebApp, bevor Sie fortfahren.',
settings: { settings: {
entry: 'Einstellungen', entry: 'Einstellungen',

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: 'Public URL', accessibleAddress: 'Public URL',
preview: 'Preview', preview: 'Preview',
regenerate: 'Regenerate', regenerate: 'Regenerate',
regenerateNotice: 'Do you want to regenerate the public URL?',
preUseReminder: 'Please enable WebApp before continuing.', preUseReminder: 'Please enable WebApp before continuing.',
settings: { settings: {
entry: 'Settings', entry: 'Settings',

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: 'URL publique', accessibleAddress: 'URL publique',
preview: 'Aperçu', preview: 'Aperçu',
regenerate: 'Regénérer', regenerate: 'Regénérer',
regenerateNotice: 'Voulez-vous régénérer l\'URL publique ?',
preUseReminder: 'Veuillez activer WebApp avant de continuer.', preUseReminder: 'Veuillez activer WebApp avant de continuer.',
settings: { settings: {
entry: 'Paramètres', entry: 'Paramètres',

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: '公開URL', accessibleAddress: '公開URL',
preview: 'プレビュー', preview: 'プレビュー',
regenerate: '再生成', regenerate: '再生成',
regenerateNotice: '公開URLを再生成しますか',
preUseReminder: '続行する前にWebAppを有効にしてください。', preUseReminder: '続行する前にWebAppを有効にしてください。',
settings: { settings: {
entry: '設定', entry: '設定',

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: '공개 URL', accessibleAddress: '공개 URL',
preview: '미리보기', preview: '미리보기',
regenerate: '재생성', regenerate: '재생성',
regenerateNotice: '공개 URL을 재생성하시겠습니까?',
preUseReminder: '계속하기 전에 웹앱을 활성화하세요.', preUseReminder: '계속하기 전에 웹앱을 활성화하세요.',
settings: { settings: {
entry: '설정', entry: '설정',

View File

@ -37,6 +37,7 @@ const translation = {
accessibleAddress: 'Publiczny adres URL', accessibleAddress: 'Publiczny adres URL',
preview: 'Podgląd', preview: 'Podgląd',
regenerate: 'Wygeneruj ponownie', regenerate: 'Wygeneruj ponownie',
regenerateNotice: 'Czy chcesz wygenerować ponownie publiczny adres URL?',
preUseReminder: 'Przed kontynuowaniem włącz aplikację WebApp.', preUseReminder: 'Przed kontynuowaniem włącz aplikację WebApp.',
settings: { settings: {
entry: 'Ustawienia', entry: 'Ustawienia',

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: 'URL Pública', accessibleAddress: 'URL Pública',
preview: 'Visualização', preview: 'Visualização',
regenerate: 'Regenerar', regenerate: 'Regenerar',
regenerateNotice: 'Você deseja regenerar a URL pública?',
preUseReminder: 'Por favor, ative o WebApp antes de continuar.', preUseReminder: 'Por favor, ative o WebApp antes de continuar.',
settings: { settings: {
entry: 'Configurações', entry: 'Configurações',

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: 'URL public', accessibleAddress: 'URL public',
preview: 'Previzualizare', preview: 'Previzualizare',
regenerate: 'Regenerare', regenerate: 'Regenerare',
regenerateNotice: 'Doriți să regenerați URL-ul public?',
preUseReminder: 'Activați aplicația web înainte de a continua.', preUseReminder: 'Activați aplicația web înainte de a continua.',
settings: { settings: {
entry: 'Setări', entry: 'Setări',

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: 'Публічний URL', accessibleAddress: 'Публічний URL',
preview: 'Попередній перегляд', preview: 'Попередній перегляд',
regenerate: 'Відновити', regenerate: 'Відновити',
regenerateNotice: 'Бажаєте згенерувати новий публічний URL?',
preUseReminder: 'Будь ласка, активуйте веб-додаток перед продовженням.', preUseReminder: 'Будь ласка, активуйте веб-додаток перед продовженням.',
settings: { settings: {
entry: 'Налаштування', entry: 'Налаштування',

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: 'Địa chỉ công cộng', accessibleAddress: 'Địa chỉ công cộng',
preview: 'Xem trước', preview: 'Xem trước',
regenerate: 'Tạo lại', regenerate: 'Tạo lại',
regenerateNotice: 'Bạn có muốn tạo lại địa chỉ công cộng không?',
preUseReminder: 'Vui lòng kích hoạt ứng dụng web trước khi tiếp tục.', preUseReminder: 'Vui lòng kích hoạt ứng dụng web trước khi tiếp tục.',
settings: { settings: {
entry: 'Cài đặt', entry: 'Cài đặt',

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: '公开访问 URL', accessibleAddress: '公开访问 URL',
preview: '预览', preview: '预览',
regenerate: '重新生成', regenerate: '重新生成',
regenerateNotice: '您是否要重新生成公开访问 URL',
preUseReminder: '使用前请先打开开关', preUseReminder: '使用前请先打开开关',
settings: { settings: {
entry: '设置', entry: '设置',

View File

@ -34,6 +34,7 @@ const translation = {
accessibleAddress: '公開訪問 URL', accessibleAddress: '公開訪問 URL',
preview: '預覽', preview: '預覽',
regenerate: '重新生成', regenerate: '重新生成',
regenerateNotice: '您是否要重新生成公開訪問 URL',
preUseReminder: '使用前請先開啟開關', preUseReminder: '使用前請先開啟開關',
settings: { settings: {
entry: '設定', entry: '設定',