Files
nimbus/resources/js/components/domain/Client/Request/RequestBuilder.vue
Mazen Touati 8780a79557 feat: persist UI state (#32)
* feat: persist UI state

* test: fix var declaration

* test: increate e2e timeout

sometimes there might be a network latency to load CDN assets like the fonts. Let's give the tests a maximum of 1 minute to fully run.
2026-01-11 01:32:57 +01:00

68 lines
2.2 KiB
Vue

<script setup lang="ts">
import {
AppTabs,
AppTabsContent,
AppTabsList,
AppTabsTrigger,
} from '@/components/base/tabs';
import {
RequestAuthorization,
RequestBody,
RequestBuilderEndpoint,
RequestHeaders,
RequestParameters,
} from '@/components/domain/Client/Request';
import { uniquePersistenceKey } from '@/utils/stores';
import { useStorage } from '@vueuse/core';
const tab = useStorage(uniquePersistenceKey('request-builder-tab'), 'body');
</script>
<template>
<div
class="relative flex h-full max-h-full flex-1 flex-col"
data-testid="request-builder-root"
>
<RequestBuilderEndpoint class="h-toolbar border-b" />
<AppTabs
:default-value="tab"
class="mt-0 flex flex-1 flex-col overflow-hidden"
data-testid="app-tabs-container"
@update:model-value="tab = $event as string"
>
<div class="bg-subtle-background border-b">
<AppTabsList class="h-toolbar px-panel rounded-none">
<AppTabsTrigger value="parameters" label="Parameters" />
<AppTabsTrigger value="body" label="Body" />
<AppTabsTrigger value="authorization" label="Authorization" />
<AppTabsTrigger value="headers" label="Headers" />
</AppTabsList>
</div>
<AppTabsContent
value="parameters"
class="mt-0 flex max-h-full min-h-0 flex-1 flex-col"
>
<RequestParameters />
</AppTabsContent>
<AppTabsContent
value="body"
class="mt-0 flex max-h-full min-h-0 flex-1 flex-col"
>
<RequestBody />
</AppTabsContent>
<AppTabsContent
value="authorization"
class="mt-0 flex max-h-full min-h-0 flex-1 flex-col"
>
<RequestAuthorization />
</AppTabsContent>
<AppTabsContent
value="headers"
class="mt-0 flex max-h-full min-h-0 flex-1 flex-col"
>
<RequestHeaders />
</AppTabsContent>
</AppTabs>
</div>
</template>