Compare commits
4 Commits
2023.12.6
...
improve/pl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
019c2cec46 | ||
|
|
40b9508361 | ||
|
|
85285a5204 | ||
|
|
c0c0c37a67 |
@@ -17,9 +17,10 @@
|
|||||||
v-if="isEmpty(shortcutsResults)"
|
v-if="isEmpty(shortcutsResults)"
|
||||||
:text="`${t('state.nothing_found')} ‟${filterText}”`"
|
:text="`${t('state.nothing_found')} ‟${filterText}”`"
|
||||||
>
|
>
|
||||||
<icon-lucide-search class="svg-icons pb-2 opacity-75" />
|
<template #icon>
|
||||||
|
<icon-lucide-search class="svg-icons opacity-75" />
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
|
|
||||||
<details
|
<details
|
||||||
v-for="(sectionResults, sectionTitle) in shortcutsResults"
|
v-for="(sectionResults, sectionTitle) in shortcutsResults"
|
||||||
v-else
|
v-else
|
||||||
|
|||||||
@@ -49,13 +49,15 @@
|
|||||||
:text="`${t('state.nothing_found')} ‟${search}”`"
|
:text="`${t('state.nothing_found')} ‟${search}”`"
|
||||||
>
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon-lucide-search class="svg-icons pb-2 opacity-75" />
|
<icon-lucide-search class="svg-icons opacity-75" />
|
||||||
</template>
|
</template>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="t('action.clear')"
|
:label="t('action.clear')"
|
||||||
outline
|
outline
|
||||||
@click="search = ''"
|
@click="search = ''"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -254,7 +254,7 @@
|
|||||||
:text="`${t('state.nothing_found')} ‟${filterText}”`"
|
:text="`${t('state.nothing_found')} ‟${filterText}”`"
|
||||||
>
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon-lucide-search class="svg-icons pb-2 opacity-75" />
|
<icon-lucide-search class="svg-icons opacity-75" />
|
||||||
</template>
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
@@ -263,6 +263,7 @@
|
|||||||
:alt="`${t('empty.collections')}`"
|
:alt="`${t('empty.collections')}`"
|
||||||
:text="t('empty.collections')"
|
:text="t('empty.collections')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<div class="flex flex-col items-center space-y-4">
|
<div class="flex flex-col items-center space-y-4">
|
||||||
<span class="text-center text-secondaryLight">
|
<span class="text-center text-secondaryLight">
|
||||||
{{ t("collection.import_or_create") }}
|
{{ t("collection.import_or_create") }}
|
||||||
@@ -284,6 +285,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
v-else-if="node.data.type === 'collections'"
|
v-else-if="node.data.type === 'collections'"
|
||||||
@@ -291,6 +293,7 @@
|
|||||||
:alt="`${t('empty.collections')}`"
|
:alt="`${t('empty.collections')}`"
|
||||||
:text="t('empty.collections')"
|
:text="t('empty.collections')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="t('add.new')"
|
:label="t('add.new')"
|
||||||
filled
|
filled
|
||||||
@@ -303,6 +306,7 @@
|
|||||||
})
|
})
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
v-else-if="node.data.type === 'folders'"
|
v-else-if="node.data.type === 'folders'"
|
||||||
|
|||||||
@@ -274,6 +274,7 @@
|
|||||||
:text="t('empty.collections')"
|
:text="t('empty.collections')"
|
||||||
@drop.stop
|
@drop.stop
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<div class="flex flex-col items-center space-y-4">
|
<div class="flex flex-col items-center space-y-4">
|
||||||
<span class="text-center text-secondaryLight">
|
<span class="text-center text-secondaryLight">
|
||||||
{{ t("collection.import_or_create") }}
|
{{ t("collection.import_or_create") }}
|
||||||
@@ -287,7 +288,9 @@
|
|||||||
:disabled="hasNoTeamAccess"
|
:disabled="hasNoTeamAccess"
|
||||||
:title="hasNoTeamAccess ? t('team.no_access') : ''"
|
:title="hasNoTeamAccess ? t('team.no_access') : ''"
|
||||||
@click="
|
@click="
|
||||||
hasNoTeamAccess ? null : emit('display-modal-import-export')
|
hasNoTeamAccess
|
||||||
|
? null
|
||||||
|
: emit('display-modal-import-export')
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
@@ -301,6 +304,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
v-else-if="node.data.type === 'collections'"
|
v-else-if="node.data.type === 'collections'"
|
||||||
@@ -309,6 +313,7 @@
|
|||||||
:text="t('empty.collections')"
|
:text="t('empty.collections')"
|
||||||
@drop.stop
|
@drop.stop
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="t('add.new')"
|
:label="t('add.new')"
|
||||||
filled
|
filled
|
||||||
@@ -321,6 +326,7 @@
|
|||||||
})
|
})
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
v-else-if="node.data.type === 'folders'"
|
v-else-if="node.data.type === 'folders'"
|
||||||
|
|||||||
@@ -180,6 +180,7 @@
|
|||||||
:alt="`${t('empty.collection')}`"
|
:alt="`${t('empty.collection')}`"
|
||||||
:text="t('empty.collection')"
|
:text="t('empty.collection')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="t('add.new')"
|
:label="t('add.new')"
|
||||||
filled
|
filled
|
||||||
@@ -190,6 +191,7 @@
|
|||||||
})
|
})
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -176,8 +176,7 @@
|
|||||||
:src="`/images/states/${colorMode.value}/pack.svg`"
|
:src="`/images/states/${colorMode.value}/pack.svg`"
|
||||||
:alt="`${t('empty.folder')}`"
|
:alt="`${t('empty.folder')}`"
|
||||||
:text="t('empty.folder')"
|
:text="t('empty.folder')"
|
||||||
>
|
/>
|
||||||
</HoppSmartPlaceholder>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<HoppSmartConfirmModal
|
<HoppSmartConfirmModal
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
type="search"
|
type="search"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
:placeholder="t('action.search')"
|
:placeholder="t('action.search')"
|
||||||
class="!border-0 bg-transparent py-2 pl-4 pr-2"
|
class="flex w-full bg-transparent px-4 py-2 h-8"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
class="flex flex-1 flex-shrink-0 justify-between border-y border-dividerLight bg-primary"
|
class="flex flex-1 flex-shrink-0 justify-between border-y border-dividerLight bg-primary"
|
||||||
@@ -66,6 +66,7 @@
|
|||||||
:alt="`${t('empty.collections')}`"
|
:alt="`${t('empty.collections')}`"
|
||||||
:text="t('empty.collections')"
|
:text="t('empty.collections')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<div class="flex flex-col items-center space-y-4">
|
<div class="flex flex-col items-center space-y-4">
|
||||||
<span class="text-center text-secondaryLight">
|
<span class="text-center text-secondaryLight">
|
||||||
{{ t("collection.import_or_create") }}
|
{{ t("collection.import_or_create") }}
|
||||||
@@ -87,13 +88,14 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
v-if="!(filteredCollections.length !== 0 || collections.length === 0)"
|
v-if="!(filteredCollections.length !== 0 || collections.length === 0)"
|
||||||
:text="`${t('state.nothing_found')} ‟${filterText}”`"
|
:text="`${t('state.nothing_found')} ‟${filterText}”`"
|
||||||
>
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon-lucide-search class="svg-icons pb-2 opacity-75" />
|
<icon-lucide-search class="svg-icons opacity-75" />
|
||||||
</template>
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<CollectionsGraphqlAdd
|
<CollectionsGraphqlAdd
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
v-model="filterTexts"
|
v-model="filterTexts"
|
||||||
type="search"
|
type="search"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
class="flex w-full bg-transparent px-4 py-2"
|
class="flex w-full bg-transparent px-4 py-2 h-8"
|
||||||
:placeholder="t('action.search')"
|
:placeholder="t('action.search')"
|
||||||
:disabled="collectionsType.type === 'team-collections'"
|
:disabled="collectionsType.type === 'team-collections'"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
v-if="!currentInterceptorSupportsCookies"
|
v-if="!currentInterceptorSupportsCookies"
|
||||||
:text="t('cookies.modal.interceptor_no_support')"
|
:text="t('cookies.modal.interceptor_no_support')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<AppInterceptor class="rounded border border-dividerLight p-2" />
|
<AppInterceptor class="rounded border border-dividerLight p-2" />
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div v-else class="flex flex-col">
|
<div v-else class="flex flex-col">
|
||||||
<div
|
<div
|
||||||
@@ -38,8 +40,7 @@
|
|||||||
:alt="`${t('cookies.modal.empty_domains')}`"
|
:alt="`${t('cookies.modal.empty_domains')}`"
|
||||||
:text="t('cookies.modal.empty_domains')"
|
:text="t('cookies.modal.empty_domains')"
|
||||||
class="mt-6"
|
class="mt-6"
|
||||||
>
|
/>
|
||||||
</HoppSmartPlaceholder>
|
|
||||||
<div
|
<div
|
||||||
v-for="[domain, entries] in workingCookieJar.entries()"
|
v-for="[domain, entries] in workingCookieJar.entries()"
|
||||||
v-else
|
v-else
|
||||||
|
|||||||
@@ -93,20 +93,12 @@
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
<div
|
<HoppSmartPlaceholder
|
||||||
v-if="myEnvironments.length === 0"
|
v-if="myEnvironments.length === 0"
|
||||||
class="flex flex-col items-center justify-center text-secondaryLight"
|
|
||||||
>
|
|
||||||
<img
|
|
||||||
:src="`/images/states/${colorMode.value}/blockchain.svg`"
|
:src="`/images/states/${colorMode.value}/blockchain.svg`"
|
||||||
loading="lazy"
|
|
||||||
class="mb-2 inline-flex h-16 w-16 flex-col object-contain object-center"
|
|
||||||
:alt="`${t('empty.environments')}`"
|
:alt="`${t('empty.environments')}`"
|
||||||
|
:text="t('empty.environments')"
|
||||||
/>
|
/>
|
||||||
<span class="pb-2 text-center">
|
|
||||||
{{ t("empty.environments") }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</HoppSmartTab>
|
</HoppSmartTab>
|
||||||
<HoppSmartTab
|
<HoppSmartTab
|
||||||
:id="'team-environments'"
|
:id="'team-environments'"
|
||||||
@@ -140,20 +132,12 @@
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
<div
|
<HoppSmartPlaceholder
|
||||||
v-if="teamEnvironmentList.length === 0"
|
v-if="teamEnvironmentList.length === 0"
|
||||||
class="flex flex-col items-center justify-center text-secondaryLight"
|
|
||||||
>
|
|
||||||
<img
|
|
||||||
:src="`/images/states/${colorMode.value}/blockchain.svg`"
|
:src="`/images/states/${colorMode.value}/blockchain.svg`"
|
||||||
loading="lazy"
|
|
||||||
class="mb-2 inline-flex h-16 w-16 flex-col object-contain object-center"
|
|
||||||
:alt="`${t('empty.environments')}`"
|
:alt="`${t('empty.environments')}`"
|
||||||
|
:text="t('empty.environments')"
|
||||||
/>
|
/>
|
||||||
<span class="pb-2 text-center">
|
|
||||||
{{ t("empty.environments") }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="!teamListLoading && teamAdapterError"
|
v-if="!teamListLoading && teamAdapterError"
|
||||||
|
|||||||
@@ -78,11 +78,13 @@
|
|||||||
:alt="`${t('empty.environments')}`"
|
:alt="`${t('empty.environments')}`"
|
||||||
:text="t('empty.environments')"
|
:text="t('empty.environments')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="`${t('add.new')}`"
|
:label="`${t('add.new')}`"
|
||||||
filled
|
filled
|
||||||
@click="addEnvironmentVariable"
|
@click="addEnvironmentVariable"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
:alt="`${t('empty.environments')}`"
|
:alt="`${t('empty.environments')}`"
|
||||||
:text="t('empty.environments')"
|
:text="t('empty.environments')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<div class="flex flex-col items-center space-y-4">
|
<div class="flex flex-col items-center space-y-4">
|
||||||
<span class="text-center text-secondaryLight">
|
<span class="text-center text-secondaryLight">
|
||||||
{{ t("environment.import_or_create") }}
|
{{ t("environment.import_or_create") }}
|
||||||
@@ -59,6 +60,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<EnvironmentsMyDetails
|
<EnvironmentsMyDetails
|
||||||
:show="showModalDetails"
|
:show="showModalDetails"
|
||||||
|
|||||||
@@ -81,6 +81,7 @@
|
|||||||
:alt="`${t('empty.environments')}`"
|
:alt="`${t('empty.environments')}`"
|
||||||
:text="t('empty.environments')"
|
:text="t('empty.environments')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
v-if="isViewer"
|
v-if="isViewer"
|
||||||
disabled
|
disabled
|
||||||
@@ -93,6 +94,7 @@
|
|||||||
filled
|
filled
|
||||||
@click="addEnvironmentVariable"
|
@click="addEnvironmentVariable"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
:alt="`${t('empty.environments')}`"
|
:alt="`${t('empty.environments')}`"
|
||||||
:text="t('empty.environments')"
|
:text="t('empty.environments')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<div class="flex flex-col items-center space-y-4">
|
<div class="flex flex-col items-center space-y-4">
|
||||||
<span class="text-center text-secondaryLight">
|
<span class="text-center text-secondaryLight">
|
||||||
{{ t("environment.import_or_create") }}
|
{{ t("environment.import_or_create") }}
|
||||||
@@ -74,6 +75,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div v-else-if="!loading">
|
<div v-else-if="!loading">
|
||||||
<EnvironmentsTeamsEnvironment
|
<EnvironmentsTeamsEnvironment
|
||||||
|
|||||||
@@ -120,6 +120,7 @@
|
|||||||
:alt="`${t('empty.authorization')}`"
|
:alt="`${t('empty.authorization')}`"
|
||||||
:text="t('empty.authorization')"
|
:text="t('empty.authorization')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
outline
|
outline
|
||||||
:label="t('app.documentation')"
|
:label="t('app.documentation')"
|
||||||
@@ -128,6 +129,7 @@
|
|||||||
:icon="IconExternalLink"
|
:icon="IconExternalLink"
|
||||||
reverse
|
reverse
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div v-else class="flex flex-1 border-b border-dividerLight">
|
<div v-else class="flex flex-1 border-b border-dividerLight">
|
||||||
<div class="w-2/3 border-r border-dividerLight">
|
<div class="w-2/3 border-r border-dividerLight">
|
||||||
|
|||||||
@@ -162,12 +162,14 @@
|
|||||||
:alt="`${t('empty.headers')}`"
|
:alt="`${t('empty.headers')}`"
|
||||||
:text="t('empty.headers')"
|
:text="t('empty.headers')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="`${t('add.new')}`"
|
:label="`${t('add.new')}`"
|
||||||
filled
|
filled
|
||||||
:icon="IconPlus"
|
:icon="IconPlus"
|
||||||
@click="addHeader"
|
@click="addHeader"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -20,8 +20,7 @@
|
|||||||
:src="`/images/states/${colorMode.value}/add_comment.svg`"
|
:src="`/images/states/${colorMode.value}/add_comment.svg`"
|
||||||
:alt="`${t('empty.documentation')}`"
|
:alt="`${t('empty.documentation')}`"
|
||||||
:text="t('empty.documentation')"
|
:text="t('empty.documentation')"
|
||||||
>
|
/>
|
||||||
</HoppSmartPlaceholder>
|
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div
|
<div
|
||||||
class="sticky top-0 z-10 flex flex-shrink-0 overflow-x-auto bg-primary"
|
class="sticky top-0 z-10 flex flex-shrink-0 overflow-x-auto bg-primary"
|
||||||
@@ -30,7 +29,7 @@
|
|||||||
v-model="graphqlFieldsFilterText"
|
v-model="graphqlFieldsFilterText"
|
||||||
type="search"
|
type="search"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
class="flex w-full bg-transparent px-4 py-2"
|
class="flex w-full bg-transparent px-4 py-2 h-8"
|
||||||
:placeholder="`${t('action.search')}`"
|
:placeholder="`${t('action.search')}`"
|
||||||
/>
|
/>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
v-model="filterText"
|
v-model="filterText"
|
||||||
type="search"
|
type="search"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
class="flex w-full bg-transparent px-4 py-2"
|
class="flex w-full bg-transparent px-4 py-2 h-8"
|
||||||
:placeholder="`${t('action.search')}`"
|
:placeholder="`${t('action.search')}`"
|
||||||
/>
|
/>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
@@ -114,8 +114,7 @@
|
|||||||
:src="`/images/states/${colorMode.value}/history.svg`"
|
:src="`/images/states/${colorMode.value}/history.svg`"
|
||||||
:alt="`${t('empty.history')}`"
|
:alt="`${t('empty.history')}`"
|
||||||
:text="t('empty.history')"
|
:text="t('empty.history')"
|
||||||
>
|
/>
|
||||||
</HoppSmartPlaceholder>
|
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
v-else-if="
|
v-else-if="
|
||||||
Object.keys(filteredHistoryGroups).length === 0 ||
|
Object.keys(filteredHistoryGroups).length === 0 ||
|
||||||
@@ -124,8 +123,9 @@
|
|||||||
:text="`${t('state.nothing_found')} ‟${filterText || filterSelection}”`"
|
:text="`${t('state.nothing_found')} ‟${filterText || filterSelection}”`"
|
||||||
>
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon-lucide-search class="svg-icons pb-2 opacity-75" />
|
<icon-lucide-search class="svg-icons opacity-75" />
|
||||||
</template>
|
</template>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="t('action.clear')"
|
:label="t('action.clear')"
|
||||||
outline
|
outline
|
||||||
@@ -136,6 +136,7 @@
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<HoppSmartConfirmModal
|
<HoppSmartConfirmModal
|
||||||
:show="confirmRemove"
|
:show="confirmRemove"
|
||||||
|
|||||||
@@ -119,6 +119,7 @@
|
|||||||
:alt="`${t('empty.authorization')}`"
|
:alt="`${t('empty.authorization')}`"
|
||||||
:text="t('empty.authorization')"
|
:text="t('empty.authorization')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
outline
|
outline
|
||||||
:label="t('app.documentation')"
|
:label="t('app.documentation')"
|
||||||
@@ -127,6 +128,7 @@
|
|||||||
:icon="IconExternalLink"
|
:icon="IconExternalLink"
|
||||||
reverse
|
reverse
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div v-else class="flex flex-1 border-b border-dividerLight">
|
<div v-else class="flex flex-1 border-b border-dividerLight">
|
||||||
<div class="w-2/3 border-r border-dividerLight">
|
<div class="w-2/3 border-r border-dividerLight">
|
||||||
|
|||||||
@@ -112,6 +112,7 @@
|
|||||||
:alt="`${t('empty.body')}`"
|
:alt="`${t('empty.body')}`"
|
||||||
:text="t('empty.body')"
|
:text="t('empty.body')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
outline
|
outline
|
||||||
:label="`${t('app.documentation')}`"
|
:label="`${t('app.documentation')}`"
|
||||||
@@ -120,6 +121,7 @@
|
|||||||
:icon="IconExternalLink"
|
:icon="IconExternalLink"
|
||||||
reverse
|
reverse
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -158,12 +158,14 @@
|
|||||||
:alt="`${t('empty.body')}`"
|
:alt="`${t('empty.body')}`"
|
||||||
:text="t('empty.body')"
|
:text="t('empty.body')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="`${t('add.new')}`"
|
:label="`${t('add.new')}`"
|
||||||
filled
|
filled
|
||||||
:icon="IconPlus"
|
:icon="IconPlus"
|
||||||
@click="addBodyParam"
|
@click="addBodyParam"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
:text="`${t('state.nothing_found')} ‟${searchQuery}”`"
|
:text="`${t('state.nothing_found')} ‟${searchQuery}”`"
|
||||||
>
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon-lucide-search class="svg-icons pb-2 opacity-75" />
|
<icon-lucide-search class="svg-icons opacity-75" />
|
||||||
</template>
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -209,12 +209,14 @@
|
|||||||
:alt="`${t('empty.headers')}`"
|
:alt="`${t('empty.headers')}`"
|
||||||
:text="t('empty.headers')"
|
:text="t('empty.headers')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
filled
|
filled
|
||||||
:label="`${t('add.new')}`"
|
:label="`${t('add.new')}`"
|
||||||
:icon="IconPlus"
|
:icon="IconPlus"
|
||||||
@click="addHeader"
|
@click="addHeader"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -157,12 +157,14 @@
|
|||||||
:alt="`${t('empty.parameters')}`"
|
:alt="`${t('empty.parameters')}`"
|
||||||
:text="t('empty.parameters')"
|
:text="t('empty.parameters')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="`${t('add.new')}`"
|
:label="`${t('add.new')}`"
|
||||||
:icon="IconPlus"
|
:icon="IconPlus"
|
||||||
filled
|
filled
|
||||||
@click="addParam"
|
@click="addParam"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -37,7 +37,9 @@
|
|||||||
:text="t('helpers.network_fail')"
|
:text="t('helpers.network_fail')"
|
||||||
large
|
large
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<AppInterceptor class="rounded border border-dividerLight p-2" />
|
<AppInterceptor class="rounded border border-dividerLight p-2" />
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
v-if="response.type === 'script_fail'"
|
v-if="response.type === 'script_fail'"
|
||||||
@@ -47,12 +49,14 @@
|
|||||||
:text="t('helpers.script_fail')"
|
:text="t('helpers.script_fail')"
|
||||||
large
|
large
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<div
|
<div
|
||||||
class="mt-2 w-full overflow-auto whitespace-normal rounded bg-primaryLight px-4 py-2 font-mono text-red-400"
|
class="mt-2 w-full overflow-auto whitespace-normal rounded bg-primaryLight px-4 py-2 font-mono text-red-400"
|
||||||
>
|
>
|
||||||
{{ response.error.name }}: {{ response.error.message }}<br />
|
{{ response.error.name }}: {{ response.error.message }}<br />
|
||||||
{{ response.error.stack }}
|
{{ response.error.stack }}
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div
|
<div
|
||||||
v-if="response.type === 'success' || response.type === 'fail'"
|
v-if="response.type === 'success' || response.type === 'fail'"
|
||||||
|
|||||||
@@ -159,8 +159,7 @@
|
|||||||
:alt="`${t('error.test_script_fail')}`"
|
:alt="`${t('error.test_script_fail')}`"
|
||||||
:heading="t('error.test_script_fail')"
|
:heading="t('error.test_script_fail')"
|
||||||
:text="t('helpers.test_script_fail')"
|
:text="t('helpers.test_script_fail')"
|
||||||
>
|
/>
|
||||||
</HoppSmartPlaceholder>
|
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
v-else
|
v-else
|
||||||
:src="`/images/states/${colorMode.value}/validation.svg`"
|
:src="`/images/states/${colorMode.value}/validation.svg`"
|
||||||
@@ -168,6 +167,7 @@
|
|||||||
:heading="t('empty.tests')"
|
:heading="t('empty.tests')"
|
||||||
:text="t('helpers.tests')"
|
:text="t('helpers.tests')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
outline
|
outline
|
||||||
:label="`${t('action.learn_more')}`"
|
:label="`${t('action.learn_more')}`"
|
||||||
@@ -175,8 +175,8 @@
|
|||||||
blank
|
blank
|
||||||
:icon="IconExternalLink"
|
:icon="IconExternalLink"
|
||||||
reverse
|
reverse
|
||||||
class="my-4"
|
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<EnvironmentsMyDetails
|
<EnvironmentsMyDetails
|
||||||
:show="showMyEnvironmentDetailsModal"
|
:show="showMyEnvironmentDetailsModal"
|
||||||
|
|||||||
@@ -149,12 +149,14 @@
|
|||||||
:alt="`${t('empty.body')}`"
|
:alt="`${t('empty.body')}`"
|
||||||
:text="t('empty.body')"
|
:text="t('empty.body')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
filled
|
filled
|
||||||
:label="`${t('add.new')}`"
|
:label="`${t('add.new')}`"
|
||||||
:icon="IconPlus"
|
:icon="IconPlus"
|
||||||
@click="addUrlEncodedParam"
|
@click="addUrlEncodedParam"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
:heading="t('error.network_fail')"
|
:heading="t('error.network_fail')"
|
||||||
large
|
large
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<div class="my-1 flex flex-col items-center text-secondaryLight">
|
<div class="my-1 flex flex-col items-center text-secondaryLight">
|
||||||
<span>
|
<span>
|
||||||
{{ t("error.please_install_extension") }}
|
{{ t("error.please_install_extension") }}
|
||||||
@@ -54,6 +55,7 @@
|
|||||||
</HoppSmartToggle>
|
</HoppSmartToggle>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -32,10 +32,12 @@
|
|||||||
:alt="`${t('empty.shared_requests_logout')}`"
|
:alt="`${t('empty.shared_requests_logout')}`"
|
||||||
:text="`${t('empty.shared_requests_logout')}`"
|
:text="`${t('empty.shared_requests_logout')}`"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonPrimary
|
<HoppButtonPrimary
|
||||||
:label="t('auth.login')"
|
:label="t('auth.login')"
|
||||||
@click="invokeAction('modals.login.toggle')"
|
@click="invokeAction('modals.login.toggle')"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
|
|
||||||
<template v-else-if="sharedRequests.length">
|
<template v-else-if="sharedRequests.length">
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
:text="`${t('state.nothing_found')} ‟${searchQuery}”`"
|
:text="`${t('state.nothing_found')} ‟${searchQuery}”`"
|
||||||
>
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon-lucide-search class="svg-icons pb-2 opacity-75" />
|
<icon-lucide-search class="svg-icons opacity-75" />
|
||||||
</template>
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
:alt="`${t('empty.members')}`"
|
:alt="`${t('empty.members')}`"
|
||||||
:text="t('empty.members')"
|
:text="t('empty.members')"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:icon="IconUserPlus"
|
:icon="IconUserPlus"
|
||||||
:label="t('team.invite')"
|
:label="t('team.invite')"
|
||||||
@@ -54,6 +55,7 @@
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div v-else class="divide-y divide-dividerLight">
|
<div v-else class="divide-y divide-dividerLight">
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -125,8 +125,7 @@
|
|||||||
pendingInvites.data.right.team?.teamInvitations.length === 0
|
pendingInvites.data.right.team?.teamInvitations.length === 0
|
||||||
"
|
"
|
||||||
:text="t('empty.pending_invites')"
|
:text="t('empty.pending_invites')"
|
||||||
>
|
/>
|
||||||
</HoppSmartPlaceholder>
|
|
||||||
<div
|
<div
|
||||||
v-if="!pendingInvites.loading && E.isLeft(pendingInvites.data)"
|
v-if="!pendingInvites.loading && E.isLeft(pendingInvites.data)"
|
||||||
class="flex flex-col items-center p-4"
|
class="flex flex-col items-center p-4"
|
||||||
@@ -245,11 +244,13 @@
|
|||||||
:alt="`${t('empty.invites')}`"
|
:alt="`${t('empty.invites')}`"
|
||||||
:text="`${t('empty.invites')}`"
|
:text="`${t('empty.invites')}`"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="t('add.new')"
|
:label="t('add.new')"
|
||||||
filled
|
filled
|
||||||
@click="addNewInvitee"
|
@click="addNewInvitee"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -16,11 +16,13 @@
|
|||||||
:alt="`${t('empty.teams')}`"
|
:alt="`${t('empty.teams')}`"
|
||||||
:text="`${t('empty.teams')}`"
|
:text="`${t('empty.teams')}`"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="`${t('team.create_new')}`"
|
:label="`${t('team.create_new')}`"
|
||||||
filled
|
filled
|
||||||
@click="displayModalAdd(true)"
|
@click="displayModalAdd(true)"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div
|
<div
|
||||||
v-else-if="!loading"
|
v-else-if="!loading"
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
:alt="`${t('empty.teams')}`"
|
:alt="`${t('empty.teams')}`"
|
||||||
:text="`${t('empty.teams')}`"
|
:text="`${t('empty.teams')}`"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="t('team.create_new')"
|
:label="t('team.create_new')"
|
||||||
filled
|
filled
|
||||||
@@ -28,6 +29,7 @@
|
|||||||
:icon="IconPlus"
|
:icon="IconPlus"
|
||||||
@click="displayModalAdd(true)"
|
@click="displayModalAdd(true)"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div v-else-if="!loading" class="flex flex-col">
|
<div v-else-if="!loading" class="flex flex-col">
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -14,10 +14,12 @@
|
|||||||
:alt="`${t('empty.profile')}`"
|
:alt="`${t('empty.profile')}`"
|
||||||
:text="`${t('empty.profile')}`"
|
:text="`${t('empty.profile')}`"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonPrimary
|
<HoppButtonPrimary
|
||||||
:label="t('auth.login')"
|
:label="t('auth.login')"
|
||||||
@click="invokeAction('modals.login.toggle')"
|
@click="invokeAction('modals.login.toggle')"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div v-else class="space-y-8">
|
<div v-else class="space-y-8">
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -142,12 +142,14 @@
|
|||||||
:alt="`${t('empty.subscription')}`"
|
:alt="`${t('empty.subscription')}`"
|
||||||
:text="`${t('empty.subscription')}`"
|
:text="`${t('empty.subscription')}`"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:label="t('mqtt.new')"
|
:label="t('mqtt.new')"
|
||||||
filled
|
filled
|
||||||
outline
|
outline
|
||||||
@click="showSubscriptionModal(true)"
|
@click="showSubscriptionModal(true)"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -197,6 +197,7 @@
|
|||||||
:alt="`${t('socketio.connection_not_authorized')}`"
|
:alt="`${t('socketio.connection_not_authorized')}`"
|
||||||
:text="`${t('socketio.connection_not_authorized')}`"
|
:text="`${t('socketio.connection_not_authorized')}`"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
outline
|
outline
|
||||||
:label="t('app.documentation')"
|
:label="t('app.documentation')"
|
||||||
@@ -205,6 +206,7 @@
|
|||||||
:icon="IconExternalLink"
|
:icon="IconExternalLink"
|
||||||
reverse
|
reverse
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div
|
<div
|
||||||
v-if="authType === 'Bearer'"
|
v-if="authType === 'Bearer'"
|
||||||
|
|||||||
@@ -163,8 +163,7 @@
|
|||||||
:src="`/images/states/${colorMode.value}/add_category.svg`"
|
:src="`/images/states/${colorMode.value}/add_category.svg`"
|
||||||
:alt="`${t('empty.protocols')}`"
|
:alt="`${t('empty.protocols')}`"
|
||||||
:text="`${t('empty.protocols')}`"
|
:text="`${t('empty.protocols')}`"
|
||||||
>
|
/>
|
||||||
</HoppSmartPlaceholder>
|
|
||||||
</HoppSmartTab>
|
</HoppSmartTab>
|
||||||
</HoppSmartTabs>
|
</HoppSmartTabs>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -117,7 +117,13 @@
|
|||||||
alt="No invites"
|
alt="No invites"
|
||||||
text="No invites"
|
text="No invites"
|
||||||
>
|
>
|
||||||
<HoppButtonSecondary label="Add new" filled @click="addNewMember" />
|
<template #body>
|
||||||
|
<HoppButtonSecondary
|
||||||
|
label="Add new"
|
||||||
|
filled
|
||||||
|
@click="addNewMember"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
v-if="team?.teamMembers?.length === 0"
|
v-if="team?.teamMembers?.length === 0"
|
||||||
text="No members in this team. Add members to this team to collaborate"
|
text="No members in this team. Add members to this team to collaborate"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
:icon="IconUserPlus"
|
:icon="IconUserPlus"
|
||||||
:label="t('teams.add_members')"
|
:label="t('teams.add_members')"
|
||||||
@@ -24,6 +25,7 @@
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
<div v-else class="divide-y divide-dividerLight">
|
<div v-else class="divide-y divide-dividerLight">
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -41,10 +41,12 @@
|
|||||||
v-if="team && pendingInvites?.length === 0"
|
v-if="team && pendingInvites?.length === 0"
|
||||||
text="No pending invites"
|
text="No pending invites"
|
||||||
>
|
>
|
||||||
|
<template #body>
|
||||||
<div v-if="!fetching && error" class="flex flex-col items-center p-4">
|
<div v-if="!fetching && error" class="flex flex-col items-center p-4">
|
||||||
<icon-lucide-help-circle class="mb-4 svg-icons" />
|
<icon-lucide-help-circle class="mb-4 svg-icons" />
|
||||||
Something went wrong. Please try again later.
|
{{ t('error.something_went_wrong') }}
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
</HoppSmartPlaceholder>
|
</HoppSmartPlaceholder>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,24 +4,29 @@
|
|||||||
v-if="src"
|
v-if="src"
|
||||||
:src="src"
|
:src="src"
|
||||||
loading="lazy"
|
loading="lazy"
|
||||||
class="inline-flex flex-col object-contain object-center mb-4"
|
class="inline-flex flex-col object-contain object-center"
|
||||||
:class="large ? 'w-32 h-32' : 'w-16 h-16'"
|
:class="large ? 'w-32 h-32' : 'w-16 h-16'"
|
||||||
:alt="alt"
|
:alt="alt"
|
||||||
/>
|
/>
|
||||||
<slot name="icon"></slot>
|
<slot name="icon"></slot>
|
||||||
<span v-if="heading" class="mb-2 font-semibold text-center">
|
<span v-if="heading" class="font-semibold mt-2 text-center">
|
||||||
{{ heading }}
|
{{ heading }}
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span
|
||||||
class="max-w-sm mb-4 text-center whitespace-normal text-secondaryLight"
|
v-if="text"
|
||||||
|
class="max-w-sm mt-2 text-center whitespace-normal text-secondaryLight text-tiny"
|
||||||
>
|
>
|
||||||
{{ text }}
|
{{ text }}
|
||||||
</span>
|
</span>
|
||||||
<slot></slot>
|
<div v-if="hasBody" class="mt-4">
|
||||||
|
<slot name="body"></slot>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { computed, useSlots } from "vue"
|
||||||
|
|
||||||
withDefaults(
|
withDefaults(
|
||||||
defineProps<{
|
defineProps<{
|
||||||
src?: string
|
src?: string
|
||||||
@@ -35,4 +40,10 @@ withDefaults(
|
|||||||
text: "",
|
text: "",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const slots = useSlots()
|
||||||
|
|
||||||
|
const hasBody = computed(() => {
|
||||||
|
return !!slots.body
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user