update example

pull/2019/head
amrbashir 9 months ago
parent 47a5c858e4
commit 6d62ec79ec
No known key found for this signature in database
GPG Key ID: BBD7A47A2003FF33

@ -81,6 +81,10 @@
"deny": ["$APPDATA/db/*.stronghold"] "deny": ["$APPDATA/db/*.stronghold"]
}, },
"store:default", "store:default",
"opener:default" "opener:default",
{
"identifier": "opener:allow-open-path",
"allow": [{ "path": "$APPDATA" }, { "path": "$APPDATA/**" }]
}
] ]
} }

@ -1,5 +1,5 @@
<script> <script>
import { open } from '@tauri-apps/plugin-opener' import * as opener from '@tauri-apps/plugin-opener'
export let onMessage export let onMessage
@ -17,34 +17,83 @@
'wslview' 'wslview'
] ]
let url = ''
let path = '' let path = ''
let revealPath = ''
let program = 'Default' let urlProgram = 'Default'
let pathProgram = 'Default'
function openUrl() {
opener
.openUrl(url, urlProgram === 'Default' ? undefined : urlProgram)
.catch(onMessage)
}
function openPath() { function openPath() {
open(path, program === 'Default' ? undefined : program).catch(onMessage) opener
.openPath(path, pathProgram === 'Default' ? undefined : urlProgram)
.catch(onMessage)
}
function revealItemInDir() {
opener.revealItemInDir(revealPath).catch(onMessage)
} }
</script> </script>
<div class="flex flex-col"> <div class="flex flex-col gap-2">
<form
class="flex flex-row gap-2 items-center"
on:submit|preventDefault={openUrl}
>
<button class="btn" type="submit">Open URL</button>
<input
class="input grow"
placeholder="Type the URL to open..."
bind:value={url}
/>
<span> with </span>
<select class="input" bind:value={urlProgram}>
<option value="Default">Default</option>
{#each programs as p}
<option value={p}>{p}</option>
{/each}
</select>
</form>
<form <form
class="flex flex-row gap-2 items-center" class="flex flex-row gap-2 items-center"
on:submit|preventDefault={openPath} on:submit|preventDefault={openPath}
> >
<button class="btn" type="submit">Open Path</button>
<input <input
class="input grow" class="input grow"
placeholder="Type the path to watch..." placeholder="Type the path to open..."
bind:value={path} bind:value={path}
/> />
<span> with </span> <span> with </span>
<select class="input" bind:value={program}> <select class="input" bind:value={pathProgram}>
<option value="Default">Default</option> <option value="Default">Default</option>
{#each programs as p} {#each programs as p}
<option value={p}>{p}</option> <option value={p}>{p}</option>
{/each} {/each}
</select> </select>
</form>
<button class="btn" type="submit">Open</button> <form
class="flex flex-row gap-2 items-center"
on:submit|preventDefault={revealItemInDir}
>
<button class="btn" type="submit">Reveal</button>
<input
class="input grow"
placeholder="Type the path to reveal..."
bind:value={revealPath}
/>
</form> </form>
</div> </div>

@ -16,7 +16,7 @@ pub async fn open_url<R: Runtime>(
app: AppHandle<R>, app: AppHandle<R>,
command_scope: CommandScope<crate::scope::Entry>, command_scope: CommandScope<crate::scope::Entry>,
global_scope: GlobalScope<crate::scope::Entry>, global_scope: GlobalScope<crate::scope::Entry>,
path: String, url: String,
with: Option<Program>, with: Option<Program>,
) -> crate::Result<()> { ) -> crate::Result<()> {
let scope = Scope::new( let scope = Scope::new(
@ -33,10 +33,10 @@ pub async fn open_url<R: Runtime>(
.collect(), .collect(),
); );
if scope.is_url_allowed(&path) { if scope.is_url_allowed(&url) {
crate::open_url(path, with) crate::open_url(url, with)
} else { } else {
Err(Error::ForbiddenUrl(path)) Err(Error::ForbiddenUrl(url))
} }
} }

Loading…
Cancel
Save