feat: 🎸 Add component sidebar in Admin UI

Add layout component sidebar in Admin UI and a view (Session recordings)
already using it

✅ Closes: ICU-8145
This commit is contained in:
Carlos Alcaide committed 2023-03-08 10:02:42 -08:00
1 parent b9cf61932b
commit 78392ff9b4
4 files changed
+69 -10

No files matched your search

@@ -0,0 +1,8 @@
<div ...attributes class='layout-sidebar'>
{{yield
(hash
body=(component 'rose/anonymous' class='layout-sidebar-body')
sidebar=(component 'rose/anonymous' class='layout-sidebar-sidebar')
)
}}
</div>
+15
View File
@@ -686,3 +686,18 @@
}
/* stylelint-enable selector-class-pattern */
}
.layout-sidebar {
display: grid;
grid-template-areas: 'body body sidebar';
.layout-sidebar-body {
grid-area: body;
}
.layout-sidebar-sidebar {
display: flex;
flex-direction: column;
grid-area: sidebar;
}
}
@@ -4,16 +4,29 @@
</page.header>
<page.body>
<p>{{t 'resources.session-recording.title'}}
{{@model.session_recording_id}}</p>
<p>{{t 'resources.session-recording.channel.title'}}
{{@model.channel_connection_id}}</p>
<Layout::Sidebar as |sb|>
<sb.body>
<p>
{{t 'resources.session-recording.title'}}
{{@model.session_recording_id}}
</p>
<LinkTo
@route='scopes.scope.session-recordings.session-recording.channels-by-connection.channel'
@model={{@model.channel_connection_id}}
>
{{@model.channel_connection_id}}
</LinkTo>
<p>
{{t 'resources.session-recording.channel.title'}}
{{@model.channel_connection_id}}
</p>
<LinkTo
@route='scopes.scope.session-recordings.session-recording.channels-by-connection.channel'
@model={{@model.channel_connection_id}}
>
{{@model.channel_connection_id}}
</LinkTo>
</sb.body>
<sb.sidebar>
<p>{{t 'actions.help'}}</p>
</sb.sidebar>
</Layout::Sidebar>
</page.body>
</Rose::Layout::Page>
@@ -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`
<Layout::Sidebar as |sb|>
<sb.body>Body content</sb.body>
<sb.sidebar>Sidebar content</sb.sidebar>
</Layout::Sidebar>
`);
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');
});
});