diff --git a/frontend/current_screen.png b/frontend/current_screen.png index 8e3924e2..68dbd224 100644 Binary files a/frontend/current_screen.png and b/frontend/current_screen.png differ diff --git a/frontend/src/features/models/pages/ModelList.vue b/frontend/src/features/models/pages/ModelList.vue index 0d249f65..39e7a442 100644 --- a/frontend/src/features/models/pages/ModelList.vue +++ b/frontend/src/features/models/pages/ModelList.vue @@ -53,13 +53,33 @@ const filterModel = reactive({ phase: '', }) +const isSearching = ref(false) + +const handleSearchTrigger = () => { + isSearching.value = true + screenState.value = 'LOADING' + setTimeout(() => { + screenState.value = 'READY' + isSearching.value = false + }, 300) +} + +const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'F3') { + e.preventDefault() + handleSearchTrigger() + } +} + onMounted(() => { screenState.value = 'LOADING' setTimeout(() => { screenState.value = 'READY' }, 500) + window.addEventListener('keydown', handleKeyDown) }) + const filteredModels = computed(() => { return models.value.filter(m => { const matchesSearch = m.name.toLowerCase().includes(filterModel.search.toLowerCase()) @@ -123,6 +143,13 @@ const handleRetry = () => { +