* feat(conn): add connection screen and logic * fixes from code review * force https * code review fixes * add http for self testing * enable deviceStore persistance * added translations * disabled feature flag * i18n updates * chore: add new folders to biome config (#910) * chore(i18n): New Crowdin Translations by GitHub Action (#908) Co-authored-by: Crowdin Bot <support+bot@crowdin.com> * fix: use correct deprecated GPS coordinate format enum (#917) The Config_DisplayConfig_GpsCoordinateFormat export doesn't exist in the protobufs package. The correct export is Config_DisplayConfig_DeprecatedGpsCoordinateFormat, which matches what's used in the validation schema. Added TODO comment explaining that this field is deprecated since protobufs 2.7.4 and should be migrated to DeviceUIConfig.gps_format when DeviceUI settings are implemented. * style: fix line wrapping for GPS coordinate format enum (#918) - Split long enum reference across multiple lines to improve code readability - Maintains consistent code formatting standards without changing functionality * fix(core): ensure core package works in browser (#923) * fix(core): ensure core package works in browser * style(core): revert new line removal * fix: add @serialport/bindings-cpp to onlyBuiltDependencies (#914) * feat(ui): Add UI library (#900) * feat: scaffold UI library * Update packages/ui/src/components/theme-provider.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add lock file * lint/formatting fixes --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * formatting/linting fixes * fixed some paring logic * fixed connection issue with serial --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com> Co-authored-by: Azarattum <43073346+Azarattum@users.noreply.github.com> Co-authored-by: Ben Allfree <ben@benallfree.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
39 lines
872 B
TypeScript
39 lines
872 B
TypeScript
import { Button } from "@app/components/UI/Button";
|
|
import type { Connection } from "@app/core/stores/deviceStore/types";
|
|
|
|
export function ConnectionStatusBadge({
|
|
status,
|
|
}: {
|
|
status: Connection["status"];
|
|
}) {
|
|
let color = "";
|
|
|
|
switch (status) {
|
|
case "connected":
|
|
color = "bg-emerald-500";
|
|
break;
|
|
case "connecting":
|
|
color = "bg-amber-500";
|
|
break;
|
|
case "online":
|
|
color = "bg-blue-500";
|
|
break;
|
|
case "error":
|
|
color = "bg-red-500";
|
|
break;
|
|
default:
|
|
color = "bg-gray-400";
|
|
}
|
|
return (
|
|
<Button variant="subtle" className="inline-flex items-center gap-2">
|
|
<span
|
|
className={`h-2.5 w-2.5 rounded-full ${color}`}
|
|
aria-hidden="true"
|
|
/>
|
|
<span className="text-xs capitalize text-slate-500 dark:text-slate-400">
|
|
{status}
|
|
</span>
|
|
</Button>
|
|
);
|
|
}
|