Files
yaak-mountain-loop/src-web/hooks/useClipboardText.ts
2024-05-13 11:30:10 -07:00

19 lines
520 B
TypeScript

import { readText, writeText } from '@tauri-apps/plugin-clipboard-manager';
import { useCallback, useEffect, useState } from 'react';
import { useWindowFocus } from './useWindowFocus';
export function useClipboardText() {
const [value, setValue] = useState<string>('');
const focused = useWindowFocus();
useEffect(() => {
readText().then(setValue);
}, [focused]);
const setText = useCallback((text: string) => {
writeText(text).catch(console.error);
}, []);
return [value, setText] as const;
}