diff --git a/ui/admin/app/components/layout/sidebar/body/index.hbs b/ui/admin/app/components/layout/sidebar/body/index.hbs
new file mode 100644
index 000000000..d905ec2e1
--- /dev/null
+++ b/ui/admin/app/components/layout/sidebar/body/index.hbs
@@ -0,0 +1,3 @@
+
+ {{yield}}
+
\ No newline at end of file
diff --git a/ui/admin/app/components/layout/sidebar/index.hbs b/ui/admin/app/components/layout/sidebar/index.hbs
new file mode 100644
index 000000000..8e66b15a7
--- /dev/null
+++ b/ui/admin/app/components/layout/sidebar/index.hbs
@@ -0,0 +1,8 @@
+
\ No newline at end of file
diff --git a/ui/admin/app/components/layout/sidebar/sidebar/index.hbs b/ui/admin/app/components/layout/sidebar/sidebar/index.hbs
new file mode 100644
index 000000000..4c986569d
--- /dev/null
+++ b/ui/admin/app/components/layout/sidebar/sidebar/index.hbs
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/ui/admin/app/styles/app.scss b/ui/admin/app/styles/app.scss
index 1f305e001..d7b5449d1 100644
--- a/ui/admin/app/styles/app.scss
+++ b/ui/admin/app/styles/app.scss
@@ -686,3 +686,28 @@
}
/* stylelint-enable selector-class-pattern */
}
+
+.layout-sidebar {
+ display: grid;
+ grid-template-areas: 'body body sidebar';
+ grid-template-columns: repeat(3, 1fr);
+ grid-template-rows: auto 1fr;
+ gap: 2rem;
+
+ .layout-sidebar-body {
+ grid-area: body;
+ }
+
+ .layout-sidebar-sidebar {
+ grid-area: sidebar;
+ }
+}
+
+@media (max-width: media.width(large)) {
+ .layout-sidebar {
+ grid-template-columns: 1fr;
+ grid-template-areas:
+ 'body'
+ 'sidebar';
+ }
+}
diff --git a/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/index.hbs b/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/index.hbs
index 981e709ba..4bdc99323 100644
--- a/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/index.hbs
+++ b/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/index.hbs
@@ -4,16 +4,29 @@
- {{t 'resources.session-recording.title'}}
- {{@model.session_recording_id}}
- {{t 'resources.session-recording.channel.title'}}
- {{@model.channel_connection_id}}
+
+
+
+ {{t 'resources.session-recording.title'}}
+ {{@model.session_recording_id}}
+
-
- {{@model.channel_connection_id}}
-
+
+ {{t 'resources.session-recording.channel.title'}}
+ {{@model.channel_connection_id}}
+
+
+
+ {{@model.channel_connection_id}}
+
+
+
+
+ {{t 'actions.help'}}
+
+
\ No newline at end of file
diff --git a/ui/admin/tests/integration/components/layout/sidebar-test.js b/ui/admin/tests/integration/components/layout/sidebar-test.js
new file mode 100644
index 000000000..95a93d6d5
--- /dev/null
+++ b/ui/admin/tests/integration/components/layout/sidebar-test.js
@@ -0,0 +1,23 @@
+import { module, test } from 'qunit';
+import { setupRenderingTest } from 'admin/tests/helpers';
+import { render } from '@ember/test-helpers';
+import { hbs } from 'ember-cli-htmlbars';
+
+module('Integration | Component | layout/sidebar', function (hooks) {
+ setupRenderingTest(hooks);
+
+ test('it renders', async function (assert) {
+ await render(hbs`
+
+ Body content
+ Sidebar content
+
+ `);
+
+ assert.dom('.layout-sidebar').isVisible();
+ assert.dom('.layout-sidebar-body').isVisible();
+ assert.dom('.layout-sidebar-body').hasText('Body content');
+ assert.dom('.layout-sidebar-sidebar').isVisible();
+ assert.dom('.layout-sidebar-sidebar').hasText('Sidebar content');
+ });
+});
diff --git a/ui/admin/tests/integration/components/layout/sidebar/body-test.js b/ui/admin/tests/integration/components/layout/sidebar/body-test.js
new file mode 100644
index 000000000..837a29e59
--- /dev/null
+++ b/ui/admin/tests/integration/components/layout/sidebar/body-test.js
@@ -0,0 +1,18 @@
+import { module, test } from 'qunit';
+import { setupRenderingTest } from 'admin/tests/helpers';
+import { render } from '@ember/test-helpers';
+import { hbs } from 'ember-cli-htmlbars';
+
+module('Integration | Component | layout/sidebar/body', function (hooks) {
+ setupRenderingTest(hooks);
+
+ test('it renders', async function (assert) {
+ await render(hbs`
+
+ template block text
+
+ `);
+
+ assert.dom(this.element).hasText('template block text');
+ });
+});
diff --git a/ui/admin/tests/integration/components/layout/sidebar/sidebar-test.js b/ui/admin/tests/integration/components/layout/sidebar/sidebar-test.js
new file mode 100644
index 000000000..ec42c3488
--- /dev/null
+++ b/ui/admin/tests/integration/components/layout/sidebar/sidebar-test.js
@@ -0,0 +1,18 @@
+import { module, test } from 'qunit';
+import { setupRenderingTest } from 'admin/tests/helpers';
+import { render } from '@ember/test-helpers';
+import { hbs } from 'ember-cli-htmlbars';
+
+module('Integration | Component | layout/sidebar/sidebar', function (hooks) {
+ setupRenderingTest(hooks);
+
+ test('it renders', async function (assert) {
+ await render(hbs`
+
+ template block text
+
+ `);
+
+ assert.dom(this.element).hasText('template block text');
+ });
+});