import { HStack, Image, Text, VStack } from "@expo/ui/swift-ui";
import {
frame,
font,
foregroundStyle,
layoutPriority,
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 island = "#FFFFFF";
const businessLabel = props.businessName.trim();
const clientLabel = props.clientName.trim();
const title = clientLabel || businessLabel || "Clock In";
const timerMods = [
font({ weight: "bold", size: 17 }),
foregroundStyle({ type: "hierarchical", style: "primary" }),
lineLimit(1),
minimumScaleFactor(0.75),
layoutPriority(2),
frame({ width: 100, alignment: "center" }),
];
const compactTimerMods = [
font({ design: "monospaced", weight: "semibold", size: 11 }),
monospacedDigit(),
foregroundStyle(island),
lineLimit(1),
minimumScaleFactor(0.75),
frame({ minWidth: 38, alignment: "center" }),
layoutPriority(2),
];
const clientMods = [
font({ weight: "bold", size: 17 }),
foregroundStyle({ type: "hierarchical", style: "primary" }),
lineLimit(1),
minimumScaleFactor(0.75),
];
// Avoid greedy layout primitives here: the live timerInterval Text can
// collapse when paired with Spacer/maxWidth. Fixed centered boxes keep the
// content stable without forcing left/right edge alignment.
const titleRowMods = [
layoutPriority(1),
frame({ width: 140, alignment: "center" }),
];
const sideZoneMods = [
frame({ width: 100, alignment: "center" }),
];
const bannerRowMods = [
padding({ horizontal: 10, vertical: 10 }),
frame({ maxWidth: Infinity, alignment: "center" }),
];
const bannerTimer = {props.elapsedShort};
const compactTimer = {props.elapsedShort};
const logoLarge = (
);
const logoSmall = (
);
return {
banner: (
{logoLarge}
{title}
{bannerTimer}
),
bannerSmall: (
{logoLarge}
{title}
{bannerTimer}
),
compactLeading: logoSmall,
compactTrailing: compactTimer,
minimal: logoSmall,
};
}
export default createLiveActivity("TimeClockActivity", TimeClockActivity);