diff --git a/client/src/App.css b/client/src/App.css index dfdc34b..5105fcf 100644 --- a/client/src/App.css +++ b/client/src/App.css @@ -947,6 +947,7 @@ html.scheme-dark .themed-select-option.is-selected { color: #86efac; background: rgba(34, 197, 94, 0.12); border: 1px solid rgba(34, 197, 94, 0.25); + padding: 3px 7px; } .entry-sign-badge--skipper.invalid { diff --git a/client/src/components/EntrySkipperSignBadge.tsx b/client/src/components/EntrySkipperSignBadge.tsx index 2296621..b976116 100644 --- a/client/src/components/EntrySkipperSignBadge.tsx +++ b/client/src/components/EntrySkipperSignBadge.tsx @@ -1,5 +1,6 @@ import { useTranslation } from 'react-i18next' -import { AlertTriangle, Fingerprint } from 'lucide-react' +import { AlertTriangle } from 'lucide-react' +import CaptainCap from './icons/CaptainCap.tsx' import type { SkipperSignStatus } from '../utils/signatures.js' interface EntrySkipperSignBadgeProps { @@ -12,18 +13,18 @@ export default function EntrySkipperSignBadge({ status }: EntrySkipperSignBadgeP if (status === 'none') return null const isValid = status === 'valid' + const label = isValid + ? t('logs.sign_badge_skipper_title_valid') + : t('logs.sign_badge_skipper_title_invalid') return ( - {isValid ? : } - {isValid ? t('logs.sign_badge_skipper') : t('logs.sign_badge_skipper_invalid')} + {isValid ? : } + {!isValid && t('logs.sign_badge_skipper_invalid')} ) } diff --git a/client/src/components/icons/CaptainCap.tsx b/client/src/components/icons/CaptainCap.tsx new file mode 100644 index 0000000..a60d4c4 --- /dev/null +++ b/client/src/components/icons/CaptainCap.tsx @@ -0,0 +1,29 @@ +import type { SVGProps } from 'react' + +interface CaptainCapProps extends SVGProps { + size?: number | string +} + +/** Skipper-/Kapitänsmütze im Lucide-Strichstil (nicht in lucide-react enthalten). */ +export default function CaptainCap({ size = 24, ...props }: CaptainCapProps) { + return ( + + + + + + + ) +} diff --git a/client/src/i18n/locales/de.json b/client/src/i18n/locales/de.json index 08b539e..5887b62 100644 --- a/client/src/i18n/locales/de.json +++ b/client/src/i18n/locales/de.json @@ -141,7 +141,6 @@ "sign_passkey_failed": "Passkey-Freigabe fehlgeschlagen", "sign_passkey_cancelled": "Passkey-Freigabe abgebrochen", "sign_invalid": "Signatur ungültig — Inhalt wurde geändert", - "sign_badge_skipper": "Skipper", "sign_badge_skipper_invalid": "Ungültig", "sign_badge_skipper_title_valid": "Skipper hat freigegeben", "sign_badge_skipper_title_invalid": "Skipper-Signatur ungültig — Inhalt wurde geändert", diff --git a/client/src/i18n/locales/en.json b/client/src/i18n/locales/en.json index b0f52ca..ac935c4 100644 --- a/client/src/i18n/locales/en.json +++ b/client/src/i18n/locales/en.json @@ -141,7 +141,6 @@ "sign_passkey_failed": "Passkey signing failed", "sign_passkey_cancelled": "Passkey signing cancelled", "sign_invalid": "Signature invalid — entry content changed", - "sign_badge_skipper": "Skipper", "sign_badge_skipper_invalid": "Invalid", "sign_badge_skipper_title_valid": "Signed by skipper", "sign_badge_skipper_title_invalid": "Skipper signature invalid — entry content changed",