chore: remove experimental tags from themes, plugins, and sender favicons settings
This commit is contained in:
@@ -111,7 +111,6 @@ interface TabDef {
|
|||||||
label: string;
|
label: string;
|
||||||
icon: LucideIcon;
|
icon: LucideIcon;
|
||||||
group: TabGroup;
|
group: TabGroup;
|
||||||
experimental?: boolean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const tabIcons: Record<Tab, LucideIcon> = {
|
const tabIcons: Record<Tab, LucideIcon> = {
|
||||||
@@ -588,8 +587,8 @@ export default function SettingsPage() {
|
|||||||
|
|
||||||
// Advanced
|
// Advanced
|
||||||
{ id: 'about_data', label: t('tabs.about_data'), icon: tabIcons.about_data, group: 'advanced' },
|
{ id: 'about_data', label: t('tabs.about_data'), icon: tabIcons.about_data, group: 'advanced' },
|
||||||
...(isFeatureEnabled('themesEnabled') ? [{ id: 'themes' as Tab, label: 'Themes', icon: tabIcons.themes, group: 'advanced' as TabGroup, experimental: true }] : []),
|
...(isFeatureEnabled('themesEnabled') ? [{ id: 'themes' as Tab, label: 'Themes', icon: tabIcons.themes, group: 'advanced' as TabGroup }] : []),
|
||||||
...(isFeatureEnabled('pluginsEnabled') ? [{ id: 'plugins' as Tab, label: 'Plugins', icon: tabIcons.plugins, group: 'advanced' as TabGroup, experimental: true }] : []),
|
...(isFeatureEnabled('pluginsEnabled') ? [{ id: 'plugins' as Tab, label: 'Plugins', icon: tabIcons.plugins, group: 'advanced' as TabGroup }] : []),
|
||||||
...(isFeatureEnabled('debugModeEnabled') ? [{ id: 'debug' as Tab, label: t('tabs.debug'), icon: tabIcons.debug, group: 'advanced' as TabGroup }] : []),
|
...(isFeatureEnabled('debugModeEnabled') ? [{ id: 'debug' as Tab, label: t('tabs.debug'), icon: tabIcons.debug, group: 'advanced' as TabGroup }] : []),
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -774,11 +773,6 @@ export default function SettingsPage() {
|
|||||||
<span className="flex items-center gap-3">
|
<span className="flex items-center gap-3">
|
||||||
<Icon className="w-4 h-4 text-muted-foreground" />
|
<Icon className="w-4 h-4 text-muted-foreground" />
|
||||||
{tab.label}
|
{tab.label}
|
||||||
{tab.experimental && (
|
|
||||||
<span className="text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-warning/15 text-warning">
|
|
||||||
Experimental
|
|
||||||
</span>
|
|
||||||
)}
|
|
||||||
</span>
|
</span>
|
||||||
<ChevronRight className="w-4 h-4 text-muted-foreground" />
|
<ChevronRight className="w-4 h-4 text-muted-foreground" />
|
||||||
</button>
|
</button>
|
||||||
@@ -918,11 +912,6 @@ export default function SettingsPage() {
|
|||||||
effectiveActiveTab === tab.id ? 'text-accent-foreground' : 'text-muted-foreground'
|
effectiveActiveTab === tab.id ? 'text-accent-foreground' : 'text-muted-foreground'
|
||||||
)} />
|
)} />
|
||||||
{tab.label}
|
{tab.label}
|
||||||
{tab.experimental && (
|
|
||||||
<span className="ml-auto text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-warning/15 text-warning shrink-0">
|
|
||||||
Experimental
|
|
||||||
</span>
|
|
||||||
)}
|
|
||||||
</button>
|
</button>
|
||||||
{subs.map((sub) => (
|
{subs.map((sub) => (
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export function PluginsSettings() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SettingsSection title="Plugins" description="Plugins deployed by your administrator. Toggle to enable or disable for your account." experimental experimentalDescription="Plugins is an experimental feature. The plugin API is not yet stable and may change between releases, which could break existing plugins. Plugins run in a sandboxed environment but have access to your data within the application.">
|
<SettingsSection title="Plugins" description="Plugins deployed by your administrator. Toggle to enable or disable for your account.">
|
||||||
{/* Plugin List */}
|
{/* Plugin List */}
|
||||||
{plugins.length === 0 ? (
|
{plugins.length === 0 ? (
|
||||||
<div className="flex flex-col items-center justify-center py-12 text-center">
|
<div className="flex flex-col items-center justify-center py-12 text-center">
|
||||||
|
|||||||
@@ -1,29 +1,16 @@
|
|||||||
import { ReactNode } from 'react';
|
import { ReactNode } from 'react';
|
||||||
import { Lock, FlaskConical } from 'lucide-react';
|
import { Lock } from 'lucide-react';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
|
||||||
interface SettingsSectionProps {
|
interface SettingsSectionProps {
|
||||||
title: string;
|
title: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
children: ReactNode;
|
children: ReactNode;
|
||||||
experimental?: boolean;
|
|
||||||
experimentalDescription?: string;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function SettingsSection({ title, description, children, experimental, experimentalDescription }: SettingsSectionProps) {
|
export function SettingsSection({ title, description, children }: SettingsSectionProps) {
|
||||||
return (
|
return (
|
||||||
<div data-search-label={title} className="space-y-4">
|
<div data-search-label={title} className="space-y-4">
|
||||||
{experimental && (
|
|
||||||
<div className="flex gap-3 rounded-lg border border-amber-300 bg-amber-50 p-3 dark:border-amber-700 dark:bg-amber-950/30">
|
|
||||||
<FlaskConical className="w-5 h-5 text-amber-600 dark:text-amber-400 mt-0.5 shrink-0" />
|
|
||||||
<div>
|
|
||||||
<p className="text-sm font-medium text-amber-800 dark:text-amber-300">Experimental Feature</p>
|
|
||||||
{experimentalDescription && (
|
|
||||||
<p className="text-xs text-amber-700 dark:text-amber-400/80 mt-1">{experimentalDescription}</p>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
<div>
|
<div>
|
||||||
<h3 className="text-lg font-medium text-foreground">{title}</h3>
|
<h3 className="text-lg font-medium text-foreground">{title}</h3>
|
||||||
{description && (
|
{description && (
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export function ThemesSettings() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SettingsSection title="Themes" description="Choose from themes deployed by your administrator and built-in presets." experimental experimentalDescription="Themes is an experimental feature. Custom themes may not cover all UI elements, and theme formats could change in future updates. Built-in presets are stable.">
|
<SettingsSection title="Themes" description="Choose from themes deployed by your administrator and built-in presets.">
|
||||||
|
|
||||||
{forcedThemeId && (
|
{forcedThemeId && (
|
||||||
<div className="mb-4 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800 dark:border-amber-900/40 dark:bg-amber-950/20 dark:text-amber-300">
|
<div className="mb-4 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800 dark:border-amber-900/40 dark:bg-amber-950/20 dark:text-amber-300">
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Synchronizovat nastavení mezi prohlížeči a zařízeními"
|
"description": "Synchronizovat nastavení mezi prohlížeči a zařízeními"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Favikony odesílatelů (experimentální)",
|
"label": "Favikony odesílatelů",
|
||||||
"description": "Zobrazovat ikony webových stránek jako profilové obrázky firemních odesílatelů"
|
"description": "Zobrazovat ikony webových stránek jako profilové obrázky firemních odesílatelů"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Synchronisieren Sie Ihre Einstellungen über Browser und Geräte hinweg"
|
"description": "Synchronisieren Sie Ihre Einstellungen über Browser und Geräte hinweg"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Absender-Favicons (Experimentell)",
|
"label": "Absender-Favicons",
|
||||||
"description": "Website-Symbole als Profilbilder für geschäftliche Absender anzeigen"
|
"description": "Website-Symbole als Profilbilder für geschäftliche Absender anzeigen"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1367,7 +1367,7 @@
|
|||||||
"description": "Sync your settings across browsers and devices"
|
"description": "Sync your settings across browsers and devices"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Sender Favicons (Experimental)",
|
"label": "Sender Favicons",
|
||||||
"description": "Show website icons as profile pictures for business senders"
|
"description": "Show website icons as profile pictures for business senders"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Sincronice sus ajustes entre navegadores y dispositivos"
|
"description": "Sincronice sus ajustes entre navegadores y dispositivos"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Favicons de remitente (Experimental)",
|
"label": "Favicons de remitente",
|
||||||
"description": "Mostrar iconos de sitios web como fotos de perfil para remitentes empresariales"
|
"description": "Mostrar iconos de sitios web como fotos de perfil para remitentes empresariales"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Synchronisez vos paramètres entre navigateurs et appareils"
|
"description": "Synchronisez vos paramètres entre navigateurs et appareils"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Favicons des expéditeurs (Expérimental)",
|
"label": "Favicons des expéditeurs",
|
||||||
"description": "Afficher les icônes de sites web comme photos de profil pour les expéditeurs professionnels"
|
"description": "Afficher les icônes de sites web comme photos de profil pour les expéditeurs professionnels"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Sincronizza le impostazioni tra browser e dispositivi"
|
"description": "Sincronizza le impostazioni tra browser e dispositivi"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Favicon dei mittenti (Sperimentale)",
|
"label": "Favicon dei mittenti",
|
||||||
"description": "Mostra le icone dei siti web come immagini profilo per i mittenti aziendali"
|
"description": "Mostra le icone dei siti web come immagini profilo per i mittenti aziendali"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "ブラウザーやデバイス間で設定を同期します"
|
"description": "ブラウザーやデバイス間で設定を同期します"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "送信者ファビコン(実験的)",
|
"label": "送信者ファビコン",
|
||||||
"description": "ビジネス送信者のプロフィール画像としてウェブサイトアイコンを表示"
|
"description": "ビジネス送信者のプロフィール画像としてウェブサイトアイコンを表示"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "여러 브라우저나 기기에서 내 설정을 동기화해요"
|
"description": "여러 브라우저나 기기에서 내 설정을 동기화해요"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "보낸 사람 파비콘 (실험적 기능)",
|
"label": "보낸 사람 파비콘",
|
||||||
"description": "비즈니스 메일의 경우 해당 웹사이트의 아이콘을 프로필 사진으로 보여줘요"
|
"description": "비즈니스 메일의 경우 해당 웹사이트의 아이콘을 프로필 사진으로 보여줘요"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1345,7 +1345,7 @@
|
|||||||
"description": "Sinhronizēt iestatījumus starp dažādiem pārlūkiem un ierīcēm"
|
"description": "Sinhronizēt iestatījumus starp dažādiem pārlūkiem un ierīcēm"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Sūtītāju ikonas (Eksperimentāli)",
|
"label": "Sūtītāju ikonas",
|
||||||
"description": "Rādīt vietņu ikonas kā sūtītāju avatarus"
|
"description": "Rādīt vietņu ikonas kā sūtītāju avatarus"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Synchroniseer uw instellingen tussen browsers en apparaten"
|
"description": "Synchroniseer uw instellingen tussen browsers en apparaten"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Afzender-favicons (Experimenteel)",
|
"label": "Afzender-favicons",
|
||||||
"description": "Toon websitepictogrammen als profielfoto's voor zakelijke afzenders"
|
"description": "Toon websitepictogrammen als profielfoto's voor zakelijke afzenders"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Synchronizuj ustawienia między przeglądarkami i urządzeniami"
|
"description": "Synchronizuj ustawienia między przeglądarkami i urządzeniami"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Favikony nadawców (eksperymentalne)",
|
"label": "Favikony nadawców",
|
||||||
"description": "Pokazuj ikony stron internetowych jako zdjęcia profilowe nadawców firmowych"
|
"description": "Pokazuj ikony stron internetowych jako zdjęcia profilowe nadawców firmowych"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Sincronize suas configurações entre navegadores e dispositivos"
|
"description": "Sincronize suas configurações entre navegadores e dispositivos"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Favicons de remetente (Experimental)",
|
"label": "Favicons de remetente",
|
||||||
"description": "Exibir ícones de sites como fotos de perfil para remetentes empresariais"
|
"description": "Exibir ícones de sites como fotos de perfil para remetentes empresariais"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Синхронизировать настройки между браузерами и устройствами"
|
"description": "Синхронизировать настройки между браузерами и устройствами"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Фавиконы отправителей (Экспериментально)",
|
"label": "Фавиконы отправителей",
|
||||||
"description": "Показывать иконки сайтов как аватары для корпоративных отправителей"
|
"description": "Показывать иконки сайтов как аватары для корпоративных отправителей"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Ayarlarınızı tarayıcılar ve cihazlar arasında senkronize edin"
|
"description": "Ayarlarınızı tarayıcılar ve cihazlar arasında senkronize edin"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Gönderici Favorikonları (Deneysel)",
|
"label": "Gönderici Favorikonları",
|
||||||
"description": "İş göndericileri için profil resmi olarak web sitesi simgelerini göster"
|
"description": "İş göndericileri için profil resmi olarak web sitesi simgelerini göster"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "Синхронізуйте налаштування між браузерами та пристроями"
|
"description": "Синхронізуйте налаштування між браузерами та пристроями"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "Favicons відправника (експериментальний)",
|
"label": "Favicons відправника",
|
||||||
"description": "Показувати піктограми веб-сайтів як зображення профілю для бізнес-відправників"
|
"description": "Показувати піктограми веб-сайтів як зображення профілю для бізнес-відправників"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"description": "跨浏览器和设备同步您的设置"
|
"description": "跨浏览器和设备同步您的设置"
|
||||||
},
|
},
|
||||||
"sender_favicons": {
|
"sender_favicons": {
|
||||||
"label": "发件人图标(实验性)",
|
"label": "发件人图标",
|
||||||
"description": "使用企业发件人的网站图标作为头像"
|
"description": "使用企业发件人的网站图标作为头像"
|
||||||
},
|
},
|
||||||
"show_avatars_in_junk": {
|
"show_avatars_in_junk": {
|
||||||
|
|||||||
@@ -190,7 +190,6 @@ interface SettingsState {
|
|||||||
// Email Display
|
// Email Display
|
||||||
disableThreading: boolean; // Show emails as individual messages instead of grouped by conversation
|
disableThreading: boolean; // Show emails as individual messages instead of grouped by conversation
|
||||||
|
|
||||||
// Experimental
|
|
||||||
senderFavicons: boolean;
|
senderFavicons: boolean;
|
||||||
showAvatarsInJunk: boolean; // Show profile images/favicons in the junk folder
|
showAvatarsInJunk: boolean; // Show profile images/favicons in the junk folder
|
||||||
|
|
||||||
@@ -343,7 +342,6 @@ const DEFAULT_SETTINGS = {
|
|||||||
// Email Display
|
// Email Display
|
||||||
disableThreading: false,
|
disableThreading: false,
|
||||||
|
|
||||||
// Experimental
|
|
||||||
senderFavicons: true,
|
senderFavicons: true,
|
||||||
showAvatarsInJunk: false,
|
showAvatarsInJunk: false,
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user