feat: linux screenshots

This commit is contained in:
2025-04-26 16:12:48 +01:00
parent fa187b3a79
commit 151142fa9b
9 changed files with 101 additions and 36 deletions

View File

@@ -9,6 +9,7 @@ import { ImageViewer } from "./components/ImageViewer";
import { ShareTarget } from "./components/share-target/ShareTarget";
import type { sendImage } from "./network";
import { ImageStatus } from "./components/image-status/ImageStatus";
import { invoke } from "@tauri-apps/api/core";
export const App = () => {
const [processingImage, setProcessingImage] =
@@ -25,34 +26,41 @@ export const App = () => {
});
});
createEffect(() => {
let listener: PluginListener;
const setupListener = async () => {
listener = await listenForShareEvents(
async (intent: ShareEvent) => {
const contents = await readFile(intent.stream).catch(
(error: Error) => {
console.warn("fetching shared content failed:");
throw error;
},
);
setFile(
new File([contents], intent.name ?? "no-name", {
type: intent.content_type,
}),
);
setLogs((l) => [...l, intent.uri]);
},
);
};
setupListener();
return () => {
listener?.unregister();
};
});
// createEffect(() => {
// let listener: PluginListener;
// const setupListener = async () => {
// listener = await listenForShareEvents(
// async (intent: ShareEvent) => {
// const contents = await readFile(intent.stream ?? "").catch(
// (error: Error) => {
// console.warn("fetching shared content failed:");
// throw error;
// },
// );
// setFile(
// new File([contents], intent.name ?? "no-name", {
// type: intent.content_type,
// }),
// );
// setLogs((l) => [...l, intent.uri]);
// },
// );
// };
// setupListener();
// return () => {
// listener?.unregister();
// };
// });
const onTakeScreenshot = () => {
invoke("take_screenshot");
};
return (
<>
<button type="button" onClick={onTakeScreenshot}>
Take Screenshot [wayland :(]
</button>
<ImageViewer onSendImage={setProcessingImage} />
<ImageStatus processingImage={processingImage} />
<ShareTarget />