mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-20 06:55:06 -04:00

* fix(copy): prevent shorthand copy if source is present in useCopy * refactor(copy): normalized copy usage
20 lines
635 B
TypeScript
20 lines
635 B
TypeScript
import { type MaybeRef, get, useClipboard } from '@vueuse/core';
|
|
import { useMessage } from 'naive-ui';
|
|
|
|
export function useCopy({ source, text = 'Copied to the clipboard' }: { source?: MaybeRef<unknown>; text?: string } = {}) {
|
|
const { copy } = useClipboard(source ? { source: computed(() => String(get(source))) } : {});
|
|
const message = useMessage();
|
|
|
|
return {
|
|
async copy(content?: string, { notificationMessage }: { notificationMessage?: string } = {}) {
|
|
if (source) {
|
|
await copy();
|
|
}
|
|
else {
|
|
await copy(content);
|
|
}
|
|
|
|
message.success(notificationMessage ?? text);
|
|
},
|
|
};
|
|
}
|