diff --git a/plugins/events.client.ts b/plugins/events.client.ts index 819dec89..efbc28dc 100644 --- a/plugins/events.client.ts +++ b/plugins/events.client.ts @@ -19,7 +19,6 @@ export default defineNuxtPlugin(() => { } = storeToRefs(eventsStore) const { - deleteEvent, deleteEventsAll, deleteEventsList, deleteEventsByType, @@ -31,17 +30,6 @@ export default defineNuxtPlugin(() => { } = useApiTransport(); const removeList = async (uuids: EventId[]) => { - if (uuids.length === 1) { - const res = await deleteEvent(uuids[0]) - - if (res) { - eventsStore.removeById(uuids[0]); - cachedIdsStore.removeById(uuids[0]); - } - - return - } - const res = await deleteEventsList(uuids) if (res) { @@ -49,6 +37,7 @@ export default defineNuxtPlugin(() => { cachedIdsStore.removeByIds(uuids); } } + const removeAll = async () => { if (lockedIds.value.length) { const removedIds = events.value @@ -75,7 +64,7 @@ export default defineNuxtPlugin(() => { const removeByType = async (eventType: EventType) => { if (lockedIds.value.length) { const removedIds = events.value - .filter(({ type, uuid }) => type !== eventType || lockedIds.value.includes(uuid)) + .filter(({ type, uuid }) => type === eventType && !lockedIds.value.includes(uuid)) .map(({ uuid }) => uuid) await removeList(removedIds) diff --git a/src/shared/lib/use-api-transport/use-api-transport.ts b/src/shared/lib/use-api-transport/use-api-transport.ts index d995e392..b0a1720c 100644 --- a/src/shared/lib/use-api-transport/use-api-transport.ts +++ b/src/shared/lib/use-api-transport/use-api-transport.ts @@ -75,6 +75,14 @@ export const useApiTransport = () => { } const deleteEventsList = (uuids: EventId[]) => { + if (!uuids.length) { + return Promise.resolve(); + } + + if (uuids.length === 1) { + return deleteEvent(uuids[0]); + } + if (getWSConnection()) { return centrifuge.rpc(`delete:api/events`, { uuids }) } diff --git a/src/shared/ui/preview-card/preview-card-header.vue b/src/shared/ui/preview-card/preview-card-header.vue index 599d0c01..bb8d0168 100644 --- a/src/shared/ui/preview-card/preview-card-header.vue +++ b/src/shared/ui/preview-card/preview-card-header.vue @@ -58,7 +58,7 @@ const isVisibleTags = computed(() => props.tags.length > 0); v-if="eventUrl" :href="eventUrl" target="_blank" - class="preview-card-header__tag preview-card-header__button--json" + class="preview-card-header__tag preview-card-header__tag--json" > JSON @@ -87,7 +87,7 @@ const isVisibleTags = computed(() => props.tags.length > 0); - - + + @@ -174,50 +174,47 @@ $eventTypeColorsMap: ( } } -.preview-card-header__button { - @apply w-5 h-5 md:w-4 md:h-4 rounded-full opacity-90 hover:opacity-100 transition-all hover:ring-4 ring-offset-1; - /* Applied tailwind classes depends on event type - Need to keep declaration for tailwind correct work: - 'var-dump' 'bg-red-600 ring-red-300', - 'Smtp' 'bg-orange-600 ring-orange-300', - 'Sentry' 'bg-pink-600 ring-pink-300', - 'profiler' 'bg-purple-600 ring-purple-300', - 'monolog' 'bg-gray-600 ring-gray-300', - 'inspector' 'bg-gray-600 ring-gray-300', - 'ray' 'bg-gray-600 ring-gray-300' */ - - @each $map in $eventTypeColorsMap { - $name: nth($map, 1); - $color: nth($map, 2); +.preview-card-header__tag--json { + @apply bg-blue-600 text-blue-50 border-blue-600; - &--#{$name} { - @apply bg-#{$color}-600 ring-#{$color}-300; - } + &:hover { + @apply bg-blue-500 dark:bg-blue-500; } +} - &:disabled { - @apply opacity-50 cursor-not-allowed; - } +.preview-card-header__button { + @apply w-5 h-5 md:w-4 md:h-4 rounded-full opacity-90 hover:opacity-100 transition-all hover:ring-4 ring-offset-1; + @apply text-white bg-gray-300 dark:bg-gray-600 ring-blue-200 dark:ring-blue-800; +} + +.preview-card-header__button--copy { + @apply text-gray-800 dark:text-white bg-transparent dark:bg-transparent; } .preview-card-header__button--collapse { - @apply text-white bg-gray-600 ring-gray-300; + &:hover { + @apply text-white bg-gray-500; + } } -.preview-card-header__button--json { - @apply text-white ring-gray-300 bg-blue-700 hover:bg-blue-500; +.preview-card-header__button--collapse-closed { + @apply text-white bg-blue-700 ring-blue-300 dark:bg-blue-700 hover:bg-blue-700; } .preview-card-header__button--delete { - @apply text-red-700 bg-white dark:bg-red-700 hover:bg-red-700 hover:text-white; + @apply text-white dark:text-white bg-red-700 dark:bg-red-700 ring-red-200 dark:ring-red-800; + + &:disabled { + @apply opacity-50 pointer-events-none; + } } .preview-card-header__button--lock { - @apply text-gray-700 dark:bg-gray-400 bg-gray-200 hover:bg-green-700 hover:text-white; + @apply hover:bg-green-700 hover:dark:bg-green-700; } .preview-card-header__button--locked { - @apply text-white dark:text-white bg-green-700 dark:bg-green-700 ring-2 ring-green-700 hover:bg-green-800 dark:hover:bg-green-500; + @apply text-white dark:text-white bg-green-700 dark:bg-green-700 ring-2 ring-green-700 dark:ring-green-700 hover:bg-green-800 dark:hover:bg-green-500; } .preview-card-header__button-icon { diff --git a/src/widgets/ui/page-header/page-header.vue b/src/widgets/ui/page-header/page-header.vue index 651b9a24..71295ebc 100644 --- a/src/widgets/ui/page-header/page-header.vue +++ b/src/widgets/ui/page-header/page-header.vue @@ -10,14 +10,14 @@ type Emits = { delete: [value: boolean]; }; -const props = withDefaults(defineProps(), { +withDefaults(defineProps(), { title: "", buttonTitle: "", }); const emit = defineEmits(); -const buttonClick = () => { +const clearEvents = () => { emit("delete", true); }; @@ -32,7 +32,7 @@ const buttonClick = () => {