Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions ui/src/components/SettingsItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,22 @@ interface SettingsItemProps {
readonly title: string;
readonly description: string | React.ReactNode;
readonly badge?: string;
readonly badgeTheme?: keyof typeof badgeTheme;
readonly className?: string;
readonly loading?: boolean;
readonly children?: React.ReactNode;
}

const badgeTheme = {
info: "bg-blue-500 text-white",
success: "bg-green-500 text-white",
warning: "bg-yellow-500 text-white",
danger: "bg-red-500 text-white",
};

export function SettingsItem(props: SettingsItemProps) {
const { title, description, badge, children, className, loading } = props;
const { title, description, badge, badgeTheme: badgeThemeProp = "danger", children, className, loading } = props;
const badgeThemeClass = badgeTheme[badgeThemeProp];

return (
<label
Expand All @@ -25,7 +34,7 @@ export function SettingsItem(props: SettingsItemProps) {
<div className="flex items-center text-base font-semibold text-black dark:text-white">
{title}
{badge && (
<span className="ml-2 rounded-full bg-red-500 px-2 py-1 text-[10px] font-medium leading-none text-white dark:border dark:border-red-700 dark:bg-red-800 dark:text-red-50">
<span className={cx("ml-2 rounded-full px-2 py-1 text-[10px] font-medium leading-none text-white", badgeThemeClass)}>
{badge}
</span>
)}
Expand Down
2 changes: 2 additions & 0 deletions ui/src/routes/devices.$id.settings.general._index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ export default function SettingsGeneralRoute() {
<div className="space-y-4 pb-2">
<div className="space-y-4">
<SettingsItem
badge="Beta"
badgeTheme="info"
title={m.user_interface_language_title()}
description={m.user_interface_language_description()}
>
Expand Down
2 changes: 1 addition & 1 deletion ui/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export default defineConfig(({ mode, command }) => {
outdir: "./localization/paraglide",
outputStructure: 'message-modules',
cookieName: 'JETKVM_LOCALE',
strategy: ['cookie', 'preferredLanguage', 'baseLocale'],
strategy: ['cookie', 'baseLocale'],
}))

return {
Expand Down