Kinetik UI

Order Stages

.md

An order on its way: a glowing track runs to a knob showing the stage under way, chips for what comes next.

v1.0.0Live on webreact-native-reanimatedreact-native-svgreact-native-worklets
Component preview

Installation

Kinetik CLI
npx kinetik-ui add order-stages

The CLI copies the source and installs native dependencies with npx expo install, so versions match your Expo SDK. With shadcn: npx shadcn@latest add https://kinetik-ui.dev/r/order-stages.json

Install manually

  1. Install dependencies
    npx expo install react-native-reanimated react-native-svg react-native-worklets
  2. Copy the source files
    • components/kinetik/order-stages.tsx
    View source files

Usage

import { OrderStages } from '@/components/kinetik/order-stages';

<OrderStages
  stages={[
    { label: 'COOKING', icon: 'cook' },
    { label: 'PACKING', icon: 'pack' },
    { label: 'ON THE WAY', icon: 'ride' },
    { label: 'DELIVERED', icon: 'check' },
  ]}
  current={0}
  minutesLeft={21}
  order="Nº 27"
/>;

When to use

  • Food, parcel and ride tracking with three to five clear stages.
  • A live activity style widget.

When not to use

  • Many stages: the chips run out of room past about five.
  • When there is no time estimate. Use Step Tracker.

Notes

  • Icons are cook, pack, ride and check.
  • Finished stages disappear into the track.

Props

OrderStagesProps

PropTypeDefaultDescription
stagesrequiredOrderStage[]—
currentrequirednumber—Index of the stage under way. Changes slide the knob along.
minutesLeftrequirednumber—Minutes until it arrives.
orderstring—Order number in the corner, e.g. "Nº 27".
leftLabelstring'MIN LEFT'Label after the minutes. Defaults to "MIN LEFT".
hapticsbooleantrueVibrate when the stage changes. Defaults to true.
styleStyleProp<ViewStyle>—

Performance and accessibility

Performance

Budget
Knob and track use UI-thread springs on change. A sheen loops along the track as one view, so it animates at rest.
Measured

Huawei P20 Lite (ANE-LX1), Android 9, release build · 17 ms median frame, 19 ms p90 · keeps drawing at rest · 121 MB app memory

Accessibility

Reduced motion
The knob jumps to its place, does not swell, the sheen stops and the minutes do not count.
Screen readers
One progress bar ("21 minutes left. COOKING. Nº 27") with the stage number.
Touch target
Not interactive.

Source files

components/kinetik/order-stages.tsx is in the Code tab of the preview above.