import { HStack, Image, Text } from "@expo/ui/swift-ui";
import {
font,
foregroundStyle,
lineLimit,
minimumScaleFactor,
monospacedDigit,
padding,
widgetAccentedRenderingMode,
} from "@expo/ui/swift-ui/modifiers";
import { createLiveActivity, type LiveActivityEnvironment } from "expo-widgets";
import type { TimeClockActivityProps } from "@/lib/time-clock-live-activity.types";
function TimeClockActivity(props: TimeClockActivityProps, _environment: LiveActivityEnvironment) {
"widget";
const green = "green";
const title = props.description.trim() || "Clock In";
const subtitle = [props.clientName, props.invoiceLabel].filter(Boolean).join(" ยท ");
const detailLine = subtitle ? `${title}\n${subtitle}` : title;
const timerMods = [
font({ design: "monospaced", weight: "bold", size: 20 }),
monospacedDigit(),
foregroundStyle(green),
lineLimit(1),
minimumScaleFactor(0.85),
];
const compactTimerMods = [
font({ design: "monospaced", weight: "semibold", size: 11 }),
monospacedDigit(),
foregroundStyle(green),
lineLimit(1),
minimumScaleFactor(0.8),
];
const brandMods = [
font({ weight: "semibold", size: 13 }),
foregroundStyle(green),
lineLimit(1),
minimumScaleFactor(0.85),
];
const detailMods = [
font({ weight: "medium", size: 12 }),
foregroundStyle({ type: "hierarchical", style: "secondary" }),
lineLimit(2),
minimumScaleFactor(0.85),
];
return {
banner: (
beenvoice
{props.elapsedShort}
),
bannerSmall: (
beenvoice
{props.elapsedShort}
),
compactLeading: (
),
compactTrailing: {props.elapsedShort},
minimal: (
),
expandedLeading: (
),
expandedTrailing: {props.elapsedShort},
expandedBottom: {detailLine},
};
}
export default createLiveActivity("TimeClockActivity", TimeClockActivity);