diff --git a/src/implementations/twig/components/menu/__snapshots__/menu.test.js.snap b/src/implementations/twig/components/menu/__snapshots__/menu.test.js.snap index f8025944a6b..78fe390ce9f 100644 --- a/src/implementations/twig/components/menu/__snapshots__/menu.test.js.snap +++ b/src/implementations/twig/components/menu/__snapshots__/menu.test.js.snap @@ -32,9 +32,32 @@ exports[`Menu Default renders correctly 1`] = ` Menu
- Site name +
+ Site name +
+ + + CTA link + + +
- Site name +
+ Site name +
+ + + CTA link + + +
- Site name +
+ Site name +
+ + + CTA link + + +
- Nom du site +
+ Nom du site +
+ + + Lien CTA + + +
- {% if _site_name is not empty %} -
{{ _site_name }}
+ {% if _site_name is not empty or _cta_link is not empty %} +
+ {% if _site_name is not empty %} +
{{ _site_name }}
+ {% endif %} + {% if _cta_link is not empty and _cta_link.link is not empty %} + {% include '@ecl/link/link.html.twig' with _cta_link|merge({ + link: _cta_link.link|merge({ + type: 'cta', + }), + extra_classes: 'ecl-menu__cta', + }) only %} + {% endif %} +
{% endif %}
diff --git a/src/implementations/twig/components/menu/menu.story.js b/src/implementations/twig/components/menu/menu.story.js index 2c319c7a745..d55b89fc9c4 100644 --- a/src/implementations/twig/components/menu/menu.story.js +++ b/src/implementations/twig/components/menu/menu.story.js @@ -3,11 +3,16 @@ import withCode from '@ecl/storybook-addon-code'; import { correctSvgPath } from '@ecl/story-utils'; import getSystem from '@ecl/builder/utils/getSystem'; -import enData from '@ecl/specs-component-menu/demo/data--en'; -import frData from '@ecl/specs-component-menu/demo/data--fr'; +import enSpecs from '@ecl/specs-component-menu/demo/data--en'; +import frSpecs from '@ecl/specs-component-menu/demo/data--fr'; import menu from './menu.html.twig'; import notes from './README.md'; +const enData = { ...enSpecs }; +const frData = { ...frSpecs }; +const enCtaLinkClone = { ...enData.cta_link }; +const frCtaLinkClone = { ...frData.cta_link }; + if (getSystem() === 'eu') { enData.site_name = ''; frData.site_name = ''; @@ -16,6 +21,7 @@ if (getSystem() === 'eu') { const getArgs = (data) => { return { site_name: data.site_name, + cta_link: false, }; }; @@ -34,12 +40,30 @@ const getArgTypes = () => { type: 'text', }, }, + cta_link: { + name: 'call to action', + type: { name: 'boolean' }, + description: 'Call to action link (optional)', + table: { + type: { summary: 'boolean' }, + defaultValue: { summary: false }, + category: 'Content', + }, + control: { + type: 'boolean', + }, + }, }; }; -const prepareData = (data, args) => { +const prepareData = (data, demo, args) => { correctSvgPath(data); data.site_name = args.site_name; + if (!args.cta_link) { + delete data.cta_link; + } else { + data.cta_link = demo !== 'translated' ? enCtaLinkClone : frCtaLinkClone; + } return data; }; @@ -50,14 +74,15 @@ export default { parameters: { layout: 'fullscreen' }, }; -export const Default = (args) => menu(prepareData(enData, args)); +export const Default = (args) => menu(prepareData(enData, 'default', args)); Default.storyName = 'default'; Default.parameters = { notes: { markdown: notes, json: enData } }; Default.args = getArgs(enData); Default.argTypes = getArgTypes(); -export const Translated = (args) => menu(prepareData(frData, args)); +export const Translated = (args) => + menu(prepareData(frData, 'translated', args)); Translated.storyName = 'translated'; Translated.parameters = { notes: { markdown: notes, json: frData } }; diff --git a/src/implementations/twig/components/menu/package.json b/src/implementations/twig/components/menu/package.json index 56f9bb745a6..1e7883e62ca 100644 --- a/src/implementations/twig/components/menu/package.json +++ b/src/implementations/twig/components/menu/package.json @@ -8,7 +8,8 @@ "access": "public" }, "dependencies": { - "@ecl/twig-component-icon": "^3.0.3" + "@ecl/twig-component-icon": "^3.0.3", + "@ecl/twig-component-link": "^3.0.3" }, "devDependencies": { "@ecl/specs-component-menu": "^3.0.3", diff --git a/src/implementations/twig/components/site-header-core/__snapshots__/site-header-core.test.js.snap b/src/implementations/twig/components/site-header-core/__snapshots__/site-header-core.test.js.snap index 2053e84d5ca..f631133108a 100644 --- a/src/implementations/twig/components/site-header-core/__snapshots__/site-header-core.test.js.snap +++ b/src/implementations/twig/components/site-header-core/__snapshots__/site-header-core.test.js.snap @@ -183,6 +183,29 @@ exports[`EC Site Header Core Default renders correctly 1`] = ` Menu +
Menu +
Menu +
Menu +
Menu +
Menu +
Menu +
Menu +
Menu +
Menu +
Menu +
Menu +
Menu +
Menu +
{ @@ -60,7 +64,7 @@ const prepareData = (data, demo, args) => { if (demo !== 'translated') { if (args.menu) { - data.menu = dataMenuEn; + data.menu = enMenu; data.menu.site_name = ''; } else if (!args.menu && data.menu) { delete data.menu; @@ -73,7 +77,7 @@ const prepareData = (data, demo, args) => { } } else { if (args.menu) { - data.menu = dataMenuFr; + data.menu = frMenu; data.menu.site_name = ''; } else if (!args.menu && data.menu) { delete data.menu; diff --git a/src/implementations/twig/components/site-header-harmonised/__snapshots__/site-header-harmonised.test.js.snap b/src/implementations/twig/components/site-header-harmonised/__snapshots__/site-header-harmonised.test.js.snap index ace381de05a..865d1087eda 100644 --- a/src/implementations/twig/components/site-header-harmonised/__snapshots__/site-header-harmonised.test.js.snap +++ b/src/implementations/twig/components/site-header-harmonised/__snapshots__/site-header-harmonised.test.js.snap @@ -224,9 +224,13 @@ exports[`Site Header Harmonised Group 1 renders correctly 1`] = ` Menu
- Site name +
+ Site name +
- Site name +
+ Site name +
- Site name +
+ Site name +
- Site name +
+ Site name +
- Site name +
+ Site name +
+ + + CTA link + + +