Components
Refreshable
Refreshable adapts SwiftUI's .refreshable modifier into an explicit web container with a refresh affordance and busy state.
Example
Requires React 18.2+ or 19 and shared styles. See setup.
Default
Loading preview…
Code
'use client';
import { useState } from 'react';
import { Text } from '@swiftuijs/ui';
import { Refreshable } from '@swiftuijs/ui';
export default function Example() {
function Demo() {
const [updatedAt, setUpdatedAt] = useState('Never');
return (<Refreshable onRefresh={async () => {
await new Promise((resolve) => setTimeout(resolve, 300));
setUpdatedAt(new Date().toLocaleTimeString());
}}>
<div style={{ padding: 16, border: '1px solid var(--sw-color-gray-4, #d1d5db)', borderRadius: 16 }}>
<Text>Last updated: {updatedAt}</Text>
</div>
</Refreshable>);
}
return <Demo />;
}More examples
With Toolbar
API reference
| Prop | Type | Required | Description |
|---|---|---|---|
onRefresh | () => Promise<void> | void | Yes | — |
isRefreshing | boolean | No | — |
refreshLabel | string | No | — |
refreshingLabel | string | No | — |
toolbar | ReactNode | No | — |
Inherits additional props from IBaseComponent.