Skip to content

Commit d6a8b00

Browse files
refactor(wizards/dataset): remove mwc-button from wizard content (openscd#631)
1 parent 1e896b3 commit d6a8b00

File tree

3 files changed

+44
-16
lines changed

3 files changed

+44
-16
lines changed

src/wizards/dataset.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,22 @@ import {
1111
cloneElement,
1212
getValue,
1313
identity,
14-
newSubWizardEvent,
1514
selector,
1615
Replace,
1716
Wizard,
1817
WizardAction,
1918
WizardActor,
2019
WizardInput,
20+
WizardMenuActor,
2121
} from '../foundation.js';
2222
import { createFCDAsWizard } from './fcda.js';
2323

24+
function openFcdaWizard(element: Element): WizardMenuActor {
25+
return (): WizardAction[] => {
26+
return [() => createFCDAsWizard(element)];
27+
};
28+
}
29+
2430
function updateDataSetAction(element: Element): WizardActor {
2531
return (inputs: WizardInput[], wizard: Element): WizardAction[] => {
2632
const name = inputs.find(i => i.label === 'name')!.value!;
@@ -89,6 +95,13 @@ export function editDataSetWizard(element: Element): Wizard {
8995
icon: 'save',
9096
action: updateDataSetAction(element),
9197
},
98+
menuActions: [
99+
{
100+
icon: 'add',
101+
label: get('dataset.fcda.add'),
102+
action: openFcdaWizard(element),
103+
},
104+
],
92105
content: [
93106
html`<wizard-textfield
94107
label="name"
@@ -116,15 +129,6 @@ export function editDataSetWizard(element: Element): Wizard {
116129
>`
117130
)}</filtered-list
118131
>`,
119-
html`<mwc-button
120-
icon="add"
121-
label="${translate('wizard.title.add', { tagName: 'FCDA' })}"
122-
@click="${(e: Event) => {
123-
e.target?.dispatchEvent(
124-
newSubWizardEvent(() => createFCDAsWizard(element))
125-
);
126-
}}"
127-
></mwc-button>`,
128132
],
129133
},
130134
];

test/unit/wizards/__snapshots__/dataset.test.snap.js

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,29 @@ snapshots["dataset wizards include a dataset edit wizard looks like the latest s
77
heading="[wizard.title.edit]"
88
open=""
99
>
10+
<nav>
11+
<mwc-icon-button icon="more_vert">
12+
</mwc-icon-button>
13+
<mwc-menu
14+
class="actions-menu"
15+
corner="BOTTOM_RIGHT"
16+
menucorner="END"
17+
>
18+
<mwc-list-item
19+
aria-disabled="false"
20+
graphic="icon"
21+
mwc-list-item=""
22+
tabindex="-1"
23+
>
24+
<span>
25+
[dataset.fcda.add]
26+
</span>
27+
<mwc-icon slot="graphic">
28+
add
29+
</mwc-icon>
30+
</mwc-list-item>
31+
</mwc-menu>
32+
</nav>
1033
<div id="wizard-content">
1134
<wizard-textfield
1235
disabled=""
@@ -55,11 +78,6 @@ snapshots["dataset wizards include a dataset edit wizard looks like the latest s
5578
CBSW/ XSWI 2.OpSlc.dsd sasd.ads.asd (ST)
5679
</mwc-check-list-item>
5780
</filtered-list>
58-
<mwc-button
59-
icon="add"
60-
label="[wizard.title.add]"
61-
>
62-
</mwc-button>
6381
</div>
6482
<mwc-button
6583
dialogaction="close"

test/unit/wizards/dataset.test.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { SinonSpy, spy } from 'sinon';
44
import '../../mock-wizard.js';
55
import { MockWizard } from '../../mock-wizard.js';
66

7+
import { ListItemBase } from '@material/mwc-list/mwc-list-item-base';
8+
79
import { editDataSetWizard } from '../../../src/wizards/dataset.js';
810
import { WizardTextField } from '../../../src/wizard-textfield.js';
911
import {
@@ -47,7 +49,11 @@ describe('dataset wizards', () => {
4749

4850
it('allows to add a new FCDA on add FCDA button click', async () => {
4951
const addButton = <HTMLElement>(
50-
element.wizardUI.dialog?.querySelector('mwc-button[icon="add"]')
52+
Array.from(
53+
element.wizardUI.dialog!.querySelectorAll<ListItemBase>(
54+
'mwc-menu > mwc-list-item'
55+
)
56+
).find(item => item.innerHTML.includes('dataset.fcda.add'))
5157
);
5258
await addButton.click();
5359
expect(wizardEvent).to.be.calledOnce;

0 commit comments

Comments
 (0)