From ff6386c6da244736f4cc20731df67ead16471de8 Mon Sep 17 00:00:00 2001
From: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com>
Date: Thu, 30 Jul 2026 00:24:10 +0800
Subject: [PATCH] feat(renderer): add bounded session image element
---
.../src/components/SessionImage.ce.vue | 94 +++++++++++++++++++
app/src/renderer/src/main.js | 3 +
app/src/renderer/src/session-image-element.js | 9 ++
3 files changed, 106 insertions(+)
create mode 100644 app/src/renderer/src/components/SessionImage.ce.vue
create mode 100644 app/src/renderer/src/session-image-element.js
diff --git a/app/src/renderer/src/components/SessionImage.ce.vue b/app/src/renderer/src/components/SessionImage.ce.vue
new file mode 100644
index 0000000..ea54e17
--- /dev/null
+++ b/app/src/renderer/src/components/SessionImage.ce.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+ Image unavailable
+ {{ accessibleLabel }}
+
+
+
+
+
diff --git a/app/src/renderer/src/main.js b/app/src/renderer/src/main.js
index 51b05a1..a564358 100644
--- a/app/src/renderer/src/main.js
+++ b/app/src/renderer/src/main.js
@@ -6,6 +6,7 @@ import router from './router.js';
import { commitInitialData, fetchInitialData } from './data.js';
import { noteSessionUpdated, sessionLiveState } from './session-live.mjs';
import { createGlobalDataRefreshCoordinator } from './session-global-refresh.mjs';
+import { registerSessionImageElement } from './session-image-element.js';
// Import shared renderer CSS globally
import '../styles/base.css';
@@ -14,6 +15,8 @@ import '../styles/toolbar.css';
import '../styles/list.css';
import '../styles/detail.css';
+registerSessionImageElement();
+
const app = createApp(App);
app.use(router);
diff --git a/app/src/renderer/src/session-image-element.js b/app/src/renderer/src/session-image-element.js
new file mode 100644
index 0000000..f365952
--- /dev/null
+++ b/app/src/renderer/src/session-image-element.js
@@ -0,0 +1,9 @@
+import { defineCustomElement } from 'vue';
+import SessionImage from './components/SessionImage.ce.vue';
+
+export const SESSION_IMAGE_TAG = 'obelisk-session-image';
+
+export function registerSessionImageElement() {
+ if (customElements.get(SESSION_IMAGE_TAG)) return;
+ customElements.define(SESSION_IMAGE_TAG, defineCustomElement(SessionImage));
+}