Ivy-Interactive / Ivy-Interactive/Rusty-Framework

[Hooks] Implement Native OS Integration Hooks (File/Folder Dialogs & Clipboard)

Open
#121 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
3
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Problem Statement

Applications built with rusty targeting native desktop environments require reactive hooks for invoking native OS dialogs and interacting with the system clipboard (use_file_dialog, use_folder_dialog, use_save_dialog, use_clipboard).

Missing Functionality

  • use_file_dialog: Hook to prompt native file open picker with file filters.
  • use_folder_dialog: Hook to prompt native directory/folder picker.
  • use_save_dialog: Hook to prompt native save file picker with default names and extensions.
  • use_clipboard: Asynchronous read/write hook for system clipboard text and data.

Proposed Architecture & Design

  1. Implement hooks in rusty/src/hooks/os.rs.
  2. For native desktop targets, delegate to rfd (Rust Native File Dialogs) and arboard (clipboard).
  3. For WebAssembly / browser targets, fallback to HTML5 Input/File API and navigator.clipboard.

Acceptance Criteria

  • use_file_dialog, use_folder_dialog, use_save_dialog trigger native file selection pickers on desktop targets.
  • use_clipboard provides reactive copy and paste operations across platforms.
  • Fallback behavior handles web browser environments gracefully.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading rusty/src/hooks/os.rs and comparing the native and WebAssembly targets described in the issue. Check how rfd, arboard, HTML5 Input/File APIs, and navigator.clipboard would map to the four proposed hooks. Done means the three dialogs work on desktop, clipboard copy and paste are reactive across platforms, and browser fallback behavior is graceful.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, wasm
Domain
desktop, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.