@aethex.os/hooks
v1.1.1
Published
AeThex React hooks — touch gestures (swipe, pinch, double-tap, long-press) and offline sync queue
Maintainers
Readme
@aethex.os/hooks
React hooks for touch gestures, offline sync, file picking, clipboard, and native sharing. No Capacitor required — pure browser APIs.
Install
npm install @aethex.os/hooksHooks
useTouchGestures
Swipe, pinch, double-tap, and long-press on any element (or the whole document).
import { useTouchGestures } from '@aethex.os/hooks';
function Card() {
const ref = useRef<HTMLDivElement>(null);
useTouchGestures({
onSwipeLeft: () => navigate('next'),
onSwipeRight: () => navigate('prev'),
onDoubleTap: () => like(),
onLongPress: () => openMenu(),
onPinch: (scale) => setZoom(scale),
}, ref);
return <div ref={ref}>...</div>;
}useOfflineSync
Queue mutations while offline, flush them automatically when connectivity returns.
import { useOfflineSync } from '@aethex.os/hooks';
function App() {
const { isOnline, addToQueue, isSyncing } = useOfflineSync({
syncUrl: '/api/sync', // your endpoint
});
const save = () => {
addToQueue('profile', 'update', { bio: 'new bio' });
// queued immediately, synced when online
};
return <button onClick={save}>{isOnline ? 'Save' : 'Save (offline)'}</button>;
}useDeviceFilePicker
import { useDeviceFilePicker } from '@aethex.os/hooks';
function Upload() {
const { pickFile, file } = useDeviceFilePicker({ accept: 'image/*' });
return (
<>
<button onClick={pickFile}>Pick image</button>
{file && <img src={file.dataUrl} />}
</>
);
}useClipboard
import { useClipboard } from '@aethex.os/hooks';
function CopyButton({ text }: { text: string }) {
const { copy, copied } = useClipboard();
return <button onClick={() => copy(text)}>{copied ? 'Copied!' : 'Copy'}</button>;
}useShare
import { useShare } from '@aethex.os/hooks';
function ShareButton() {
const { share, isSupported } = useShare();
return (
<button onClick={() => share({ title: 'Check this out', url: window.location.href })}>
{isSupported ? 'Share' : 'Copy link'}
</button>
);
}Part of the @aethex.os ecosystem
See @aethex.os/core for the full package list.
