-
-
- {{ exception.class }}
+
();
diff --git a/src/entities/ray/ui/ray-trace/ray-trace.vue b/src/entities/ray/ui/ray-trace/ray-trace.vue
index 0cb96a7c..5677c110 100644
--- a/src/entities/ray/ui/ray-trace/ray-trace.vue
+++ b/src/entities/ray/ui/ray-trace/ray-trace.vue
@@ -11,16 +11,22 @@ defineProps();
diff --git a/src/entities/sentry/ui/preview-card/preview-card.vue b/src/entities/sentry/ui/preview-card/preview-card.vue
index fd8eb6b1..8e541d04 100644
--- a/src/entities/sentry/ui/preview-card/preview-card.vue
+++ b/src/entities/sentry/ui/preview-card/preview-card.vue
@@ -15,8 +15,6 @@ const props = withDefaults(defineProps(), {
maxFrames: 3,
});
-const eventLink = computed(() => `/sentry/${props.event.id}`);
-
const exceptionValues = computed(
() => props.event?.payload?.exception?.values || []
);
@@ -45,19 +43,19 @@ const exception: Ref = computed(() =>
:exception="exception"
:max-frames="maxFrames"
>
-
+
@@ -68,8 +66,8 @@ const exception: Ref = computed(() =>
@apply flex flex-col;
}
-.preview-card__link {
- @apply cursor-pointer block dark:bg-gray-900 bg-gray-100 p-3 rounded-t-md border border-purple-300 dark:border-gray-400;
+.preview-card__content {
+ @apply block dark:bg-gray-900 bg-gray-100 p-3 rounded-t-md border border-purple-300 dark:border-gray-400;
}
.preview-card__title {
diff --git a/src/entities/sentry/ui/sentry-exception/sentry-exception.vue b/src/entities/sentry/ui/sentry-exception/sentry-exception.vue
index 6bfaf955..7ce911f6 100644
--- a/src/entities/sentry/ui/sentry-exception/sentry-exception.vue
+++ b/src/entities/sentry/ui/sentry-exception/sentry-exception.vue
@@ -71,6 +71,6 @@ const exceptionFrames = computed(() => {
}
.sentry-exception__frames {
- @apply border border-purple-200 dark:border-gray-600 flex-col justify-center w-full border border-purple-300 dark:border-gray-400 border-t-0 rounded-b-md overflow-hidden;
+ @apply flex-col justify-center w-full border border-purple-300 dark:border-gray-400 border-t-0 rounded-b-md overflow-hidden;
}
diff --git a/src/entities/smtp/ui/preview-card/preview-card.vue b/src/entities/smtp/ui/preview-card/preview-card.vue
index 68244c14..84d9394e 100644
--- a/src/entities/smtp/ui/preview-card/preview-card.vue
+++ b/src/entities/smtp/ui/preview-card/preview-card.vue
@@ -13,8 +13,6 @@ const props = defineProps();
const dateFormat = computed(() => moment(props.event.date).fromNow());
-const eventLink = computed(() => `/smtp/${props.event.id}`);
-
const emailRecipient = computed(
() => props?.event?.payload?.to?.[0]?.email || null
);
@@ -22,7 +20,7 @@ const emailRecipient = computed(
-
+
{{ event.payload.subject }}
@@ -34,7 +32,7 @@ const emailRecipient = computed(
{{ dateFormat }}
-
+
diff --git a/src/entities/var-dump/types.ts b/src/entities/var-dump/types.ts
index bdef55a7..a509c1b9 100644
--- a/src/entities/var-dump/types.ts
+++ b/src/entities/var-dump/types.ts
@@ -5,10 +5,16 @@ export interface VarDump {
},
context: {
timestamp: number,
- cli: {
+ cli?: {
command_line: string,
identifier: string
},
+ request?: {
+ identifier?: string,
+ method?: string,
+ uri?: string,
+ controller?: string,
+ },
source: {
name: string,
file: string,
diff --git a/src/screens/ray/index.ts b/src/screens/ray/index.ts
new file mode 100644
index 00000000..ed584959
--- /dev/null
+++ b/src/screens/ray/index.ts
@@ -0,0 +1 @@
+export * from './ui'
diff --git a/src/screens/ray/ui/index.ts b/src/screens/ray/ui/index.ts
new file mode 100644
index 00000000..33e1479b
--- /dev/null
+++ b/src/screens/ray/ui/index.ts
@@ -0,0 +1 @@
+export * from './ray-page'
diff --git a/src/screens/ray/ui/ray-page/index.ts b/src/screens/ray/ui/ray-page/index.ts
new file mode 100644
index 00000000..31da5ef9
--- /dev/null
+++ b/src/screens/ray/ui/ray-page/index.ts
@@ -0,0 +1 @@
+export { default as RayPage } from './ray-page.vue';
diff --git a/src/screens/ray/ui/ray-page/ray-page.stories.ts b/src/screens/ray/ui/ray-page/ray-page.stories.ts
new file mode 100644
index 00000000..9cd30116
--- /dev/null
+++ b/src/screens/ray/ui/ray-page/ray-page.stories.ts
@@ -0,0 +1,18 @@
+import type { Meta, StoryObj } from "@storybook/vue3";
+import { useRay } from "~/src/entities/ray";
+import { rayCallerMock } from '~/src/entities/ray/mocks';
+import RayPage from './ray-page.vue';
+
+const { normalizeRayEvent } = useRay();
+
+export default {
+ title: "Screens/Ray/RayPage",
+ component: RayPage
+} as Meta;
+
+
+export const Default: StoryObj = {
+ args: {
+ event: normalizeRayEvent(rayCallerMock),
+ }
+}
diff --git a/src/screens/ray/ui/ray-page/ray-page.vue b/src/screens/ray/ui/ray-page/ray-page.vue
new file mode 100644
index 00000000..f02c0e47
--- /dev/null
+++ b/src/screens/ray/ui/ray-page/ray-page.vue
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+
+ Origin
+
+
+ {{ value }}
+
+
+
+
+
+ Meta
+
+
+ {{ value }}
+
+
+
+
+
+
+
+
diff --git a/src/screens/var-dump/index.ts b/src/screens/var-dump/index.ts
new file mode 100644
index 00000000..ed584959
--- /dev/null
+++ b/src/screens/var-dump/index.ts
@@ -0,0 +1 @@
+export * from './ui'
diff --git a/src/screens/var-dump/ui/index.ts b/src/screens/var-dump/ui/index.ts
new file mode 100644
index 00000000..489079ec
--- /dev/null
+++ b/src/screens/var-dump/ui/index.ts
@@ -0,0 +1 @@
+export * from './var-dump-page'
diff --git a/src/screens/var-dump/ui/var-dump-page/index.ts b/src/screens/var-dump/ui/var-dump-page/index.ts
new file mode 100644
index 00000000..72e59de8
--- /dev/null
+++ b/src/screens/var-dump/ui/var-dump-page/index.ts
@@ -0,0 +1 @@
+export { default as VarDumpPage } from './var-dump-page.vue';
diff --git a/src/screens/var-dump/ui/var-dump-page/var-dump-page.stories.ts b/src/screens/var-dump/ui/var-dump-page/var-dump-page.stories.ts
new file mode 100644
index 00000000..344dc9e1
--- /dev/null
+++ b/src/screens/var-dump/ui/var-dump-page/var-dump-page.stories.ts
@@ -0,0 +1,18 @@
+import type { Meta, StoryObj } from "@storybook/vue3";
+import { useVarDump } from "~/src/entities/var-dump";
+import { varDumpObjectMock } from '~/src/entities/var-dump/mocks';
+import VarDump from './var-dump-page.vue';
+
+const { normalizeVarDumpEvent } = useVarDump();
+
+export default {
+ title: "Screens/VarDump/VarDumpPage",
+ component: VarDump
+} as Meta;
+
+
+export const Default: StoryObj = {
+ args: {
+ event: normalizeVarDumpEvent(varDumpObjectMock),
+ }
+}
diff --git a/src/screens/var-dump/ui/var-dump-page/var-dump-page.vue b/src/screens/var-dump/ui/var-dump-page/var-dump-page.vue
new file mode 100644
index 00000000..4d538c6d
--- /dev/null
+++ b/src/screens/var-dump/ui/var-dump-page/var-dump-page.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+ Source
+
+
+ {{ value }}
+
+
+
+
+
+ Request
+
+
+
+ {{ value }}
+
+
+
+
+
+
+
+
+
diff --git a/src/shared/ui/code-snippet/code-snippet.vue b/src/shared/ui/code-snippet/code-snippet.vue
index a8ab3fbf..93465393 100644
--- a/src/shared/ui/code-snippet/code-snippet.vue
+++ b/src/shared/ui/code-snippet/code-snippet.vue
@@ -7,12 +7,13 @@ import { IconSvg } from "../icon-svg";
const CodeHighlight = highlightPlugin.component;
type Props = {
- code: string | unknown;
- language: string;
+ code?: string;
+ language?: string;
};
const props = withDefaults(defineProps(), {
language: "plaintext",
+ code: "",
});
const isCopied = ref(false);
@@ -51,7 +52,7 @@ const copyCode = (): void => {
:class="{ 'code-snippet__copy--active': isCopied }"
@click="copyCode"
>
-
+
Copy
diff --git a/src/shared/ui/icon-svg/icon-svg-originals/ray.svg b/src/shared/ui/icon-svg/icon-svg-originals/ray.svg
new file mode 100644
index 00000000..b68ee46c
--- /dev/null
+++ b/src/shared/ui/icon-svg/icon-svg-originals/ray.svg
@@ -0,0 +1,10 @@
+
diff --git a/src/shared/ui/icon-svg/icon-svg-originals/var_dump.svg b/src/shared/ui/icon-svg/icon-svg-originals/var_dump.svg
new file mode 100644
index 00000000..d34553ad
--- /dev/null
+++ b/src/shared/ui/icon-svg/icon-svg-originals/var_dump.svg
@@ -0,0 +1,17 @@
+
+
\ No newline at end of file
diff --git a/src/shared/ui/icon-svg/icon-svg.vue b/src/shared/ui/icon-svg/icon-svg.vue
index 49237ecc..ea9f63d8 100644
--- a/src/shared/ui/icon-svg/icon-svg.vue
+++ b/src/shared/ui/icon-svg/icon-svg.vue
@@ -154,6 +154,82 @@ defineProps
();
/>
+
+
+
+
+
+