diff --git a/gfi-ihk-2024/stories/components/flockler/Flockler.stories.js b/gfi-ihk-2024/stories/components/flockler/Flockler.stories.js new file mode 100644 index 0000000..d427564 --- /dev/null +++ b/gfi-ihk-2024/stories/components/flockler/Flockler.stories.js @@ -0,0 +1,18 @@ +import {createFlockler} from "./FlocklerComponent"; + +export default { + title: 'Components/Flockler', + args: {}, +} + +const Template = ({...args}) => { + return createFlockler({...args}); +}; + +export const FlocklerCarousel = Template.bind({}); +FlocklerCarousel.args = {}; + +export const Flockler = Template.bind({}); +Flockler.args = { + isCarousel: false, +}; \ No newline at end of file diff --git a/gfi-ihk-2024/stories/components/flockler/FlocklerComponent.js b/gfi-ihk-2024/stories/components/flockler/FlocklerComponent.js new file mode 100644 index 0000000..3db1c57 --- /dev/null +++ b/gfi-ihk-2024/stories/components/flockler/FlocklerComponent.js @@ -0,0 +1,35 @@ +import './flockler.scss'; +import {createElement} from "../../_global/scripts/helpers"; + +export const createFlockler = ({ + isCarousel = true, + backgroundColor = true, + headline = 'Social Media', +}) => { + const flockler = createElement('div', ['flocker']); + if (backgroundColor) { + flockler.classList.add('colored') + } + const container = createElement('div', ['container'], null, flockler); + + if (headline && headline.length > 0) { + createElement('h2', [], headline, container); + } + + const flocklerDiv = createElement('div', [], null, container); + if (isCarousel) { + flocklerDiv.id = 'flockler-embed-1909cf78b700ca8f2ab8c99cf853e256'; + } else { + flocklerDiv.id = 'flockler-embed-1909cf6ac14089fbe68d7606d3222ca3'; + } + + const flocklerScript = createElement('script', [], null, container); + flocklerScript.async = true; + if (isCarousel) { + flocklerScript.src = 'https://plugins.flockler.com/embed/18c3530f420086988e50456ec8645095/1909cf78b700ca8f2ab8c99cf853e256'; + } else { + flocklerScript.src = 'https://plugins.flockler.com/embed/18c3530f420086988e50456ec8645095/1909cf6ac14089fbe68d7606d3222ca3'; + } + + return flockler; +} \ No newline at end of file diff --git a/gfi-ihk-2024/stories/components/flockler/flockler.scss b/gfi-ihk-2024/stories/components/flockler/flockler.scss new file mode 100644 index 0000000..8b02cf4 --- /dev/null +++ b/gfi-ihk-2024/stories/components/flockler/flockler.scss @@ -0,0 +1,9 @@ +.flocker { + &.colored { + padding: var(--section-padding) 0; + background-color: var(--theme-color-primary-dimmed-04); + h2 { + margin-top: var(--section-headline-margin); + } + } +} \ No newline at end of file diff --git a/gfi-ihk-2024/stories/components/form-element-form-centric/FormElementFormCentricComponent.js b/gfi-ihk-2024/stories/components/form-element-form-centric/FormElementFormCentricComponent.js index e9b00f9..300fef1 100644 --- a/gfi-ihk-2024/stories/components/form-element-form-centric/FormElementFormCentricComponent.js +++ b/gfi-ihk-2024/stories/components/form-element-form-centric/FormElementFormCentricComponent.js @@ -196,7 +196,7 @@ export const createFormCentricElement = ({ input.type = 'file'; input.id = id; input.name = name; - input.classes = ['mwf-file__input']; + input.classList.add ('mwf-file__input'); } return wrapper; diff --git a/gfi-ihk-2024/stories/pages/flockler/home/Home.stories.js b/gfi-ihk-2024/stories/pages/flockler/home/Home.stories.js new file mode 100644 index 0000000..59a8c77 --- /dev/null +++ b/gfi-ihk-2024/stories/pages/flockler/home/Home.stories.js @@ -0,0 +1,28 @@ +import {createHomePage} from "./HomePage"; + +export default { + title: 'Pages/Flockler/Home Page', + parameters: { + layout: 'fullscreen', + }, + argTypes: { + globalMessageType: { + name: 'Globaler Störer Typ', + control: 'select', + options: ['light', 'bold', 'alarming'], + defaultValue: 'light', + }, + globalMessage: { + name: 'Globaler Störer Nachricht', + control: {type: 'text'}, + defaultValue: 'Leider kommt es durch technische Wartungsmaßnahmen am 2. Mai in der Zeit von 17:30–23:00 zu einer eingeschränkten Verfügbarkeit unserer Internetseite', + }, + } +} + +const Template = ({...args}) => { + return createHomePage({...args}); +}; + +export const HomePage = Template.bind({}); +HomePage.args = {}; \ No newline at end of file diff --git a/gfi-ihk-2024/stories/pages/flockler/home/HomePage.js b/gfi-ihk-2024/stories/pages/flockler/home/HomePage.js new file mode 100644 index 0000000..5bf9e43 --- /dev/null +++ b/gfi-ihk-2024/stories/pages/flockler/home/HomePage.js @@ -0,0 +1,57 @@ +import {createSlider} from "../../../sections/slider/SliderComponent"; +import {createElement} from "../../../_global/scripts/helpers"; +import {createHeader} from "../../../components/header/HeaderComponent"; +import {sliderData} from "../../../sections/slider/SliderData"; +import {createSearch} from "../../../sections/search/SearchComponent"; +import {createGlobalMessage} from "../../../components/global-message/GlobalMessageComponent"; +import {createFeature} from "../../../sections/feature/FeatureComponent"; +import {createInfoBanner} from "../../../sections/infobanner/InfoBannerComponent"; +import {createFooter} from "../../../components/footer/FooterComponent"; +import {createTopicTeasersSection} from "../../../sections/topic-teasers/TopicTeasersComponent"; +import {createEventsSection} from "../../../sections/events/EventsComponent"; +import {createSocialSection} from "../../../sections/social/SocialComponent"; +import {createTeasersSection} from "../../../sections/teasers/TeasersComponent"; +import {createFlockler} from "../../../components/flockler/FlocklerComponent"; + +export const createHomePage = ({ + globalMessageType = 'light', + globalMessage = 'Leider kommt es durch technische Wartungsmaßnahmen am 2. Mai in der Zeit von 17:30–23:00 zu einer eingeschränkten Verfügbarkeit unserer Internetseite', + globalMessageIcon = '', +}) => { + const page = createElement('div', ['page']); + const header = createHeader({}); + const wrapper = createElement('div', ['page-wrapper'], null, page); + const main = createElement('main', ['page-content'], null, wrapper); + const footer = createFooter({}); + + page.insertBefore(header, wrapper); + page.appendChild(footer); + + main.appendChild(createGlobalMessage({type: globalMessageType, message: globalMessage})); + main.appendChild(createSearch({})); + main.appendChild(createInfoBanner({imageSrc: null, isCommercial: false})); + //main.appendChild(createTopicTeasersSection({})); + + main.appendChild(createFlockler({})); + + main.appendChild(createTeasersSection({headline: 'Aktuelles', type: 'hero', maxItems: 2})); + main.appendChild(createSlider({slides: sliderData})); + + // main.appendChild(createEventsSection({})); + + main.appendChild(createFlockler({isCarousel: false})); + + main.appendChild(createTeasersSection({headline: 'Weitere Themen'})); + main.appendChild(createSocialSection({})); + main.appendChild(createTeasersSection({type: 'text'})); + main.appendChild(createFeature({})); + + return page; +} + +const Template = ({...args}) => { + return createHomePage({...args}); +}; + +export const RegularSlider = Template.bind({}); +RegularSlider.args = {}; \ No newline at end of file