creddy/src/views/Approve.svelte

57 lines
1.5 KiB
Svelte
Raw Normal View History

2022-08-14 13:27:41 -07:00
<script>
import { createEventDispatcher } from 'svelte';
import { invoke } from '@tauri-apps/api/tauri';
2022-12-22 19:53:14 -08:00
import Icon from '../ui/icon.svelte';
export let appState;
2022-08-14 13:27:41 -07:00
const dispatch = createEventDispatcher();
2022-11-23 17:11:44 -08:00
async function approve() {
2022-12-13 21:50:34 -08:00
let status = await invoke('get_session_status');
2022-12-13 16:50:44 -08:00
if (status === 'unlocked') {
dispatch('navigate', {target: 'ShowApproved'});
}
2022-12-13 16:50:44 -08:00
else if (status === 'locked') {
dispatch('navigate', {target: 'Unlock'})
}
else {
2022-12-13 16:50:44 -08:00
dispatch('navigate', {target: 'EnterCredentials'});
}
2022-11-23 17:11:44 -08:00
}
function deny() {
dispatch('navigate', {target: 'ShowDenied'});
}
2022-12-19 15:26:44 -08:00
function handleHotkey(event) {
if (event.shiftKey && (event.code === 'Enter' || event.code === 'NumpadEnter')) {
approve();
}
2022-12-21 14:49:01 -08:00
else if (event.code === 'Escape') {
deny();
}
2022-12-19 15:26:44 -08:00
}
2022-08-14 13:27:41 -07:00
</script>
2022-12-19 15:26:44 -08:00
<svelte:window on:keydown={handleHotkey} />
2022-08-14 13:27:41 -07:00
<h2 class="text-3xl text-gray-200">An application would like to access your AWS credentials.</h2>
<div class="text-center">
<ul class="text-gray-200">
{#each appState.currentRequest.clients as client}
2022-12-22 19:53:14 -08:00
<li>PID: {client ? client.pid : 'Unknown'}</li>
<li>Path: {client ? client.exe : 'Unknown'}</li>
{/each}
</ul>
<button on:click={approve}>
2022-12-22 19:53:14 -08:00
<Icon name="check-circle" class="w-32 stroke-green-500" />
</button>
<button on:click={deny}>
2022-12-22 19:53:14 -08:00
<Icon name="x-circle" class="w-32 stroke-red-600" />
</button>
</div>