@studyportals/content-switcher

1.1.6 • Public • Published

Content-Switcher

The content switcher is responsible for displaying multiple large modules inside a switchable container. It will generate a menu based on the content so you can easily switch between the content.

How to use Content-Switcher

In order for content switcher to work you need to have a wrapper element which contains your content. Inside this container there should be a container element with the classname: "SwitchableContent". Inside the "SwitchableContent" element you will place you individual pieces of content with the classname: "SwitchableGroup".

On the wrapperElement you pass a data-id attribute, this id will be broadcasted allong the content change event.

<div class="WrapperElement" data-id="id_of_content_switcher">
  <div class="SwitchableContent">
    <div class="SwitchableGroup">
      content 1
    </div>
    <div class="SwitchableGroup">
      content 2
    </div>
    <div class="SwitchableGroup">
      content 3
    </div>
  </div>
</div>

Generate content switcher

Before generating the content switcher you need to add some data attributes to the module elements

data attribute usages
data-id used as a identifier during broadcast and targeting of the module
data-label max 2 words (no numbers). Used as text inside the buttons to switch the content
<div class="WrapperElement" data-id="id_of_content_switcher">
  <div class="SwitchableContent">
    <div class="SwitchableGroup" data-id="content_1" data-label="content one">
      content 1
    </div>
    <div class="SwitchableGroup"  data-id="content_2" data-label="content two">
      content 2
    </div>
    <div class="SwitchableGroup"  data-id="content_3" data-label="content three">
      content 3
    </div>
  </div>
</div>

To generate the content switcher you create an instance of the ContentSwitcher class with the refference to the wrapper element. After this you call the init() function.

const wrapperElement = document.querySelector('.WrapperElement');
const contentSwitcher = new ContentSwitcher(wrapperElement);
contentSwitcher.init();

This will generate the content switcher and hides all the modules apart from the first module. If you want to show a different module on init you can pass in a second argument in the constructor to show the corresponding module.

const contentSwitcher = new ContentSwitcher(wrapperElement, 'content_2');

Events

The content switcher will dispatch an event everytime the content is switched. the event will pass the id of the switched content & the id of the content switcher

document.addEventListener('contentChanged', (event) => {

  const activatedGroupId = event.detail.to;
  const deactivatedGroupId = event.detail.from;
  const id = event.detail.id;
});

You can change the active module by calling setActiveModule()


const contentSwitcher = new ContentSwitcher(wrapperElement);
contentSwitcher.setActiveModule('content_2');

Flowchart

For more detailed information you can refer to the flowchart

/@studyportals/content-switcher/

    Package Sidebar

    Install

    npm i @studyportals/content-switcher

    Weekly Downloads

    14

    Version

    1.1.6

    License

    BSD-3-Clause

    Unpacked Size

    367 kB

    Total Files

    31

    Last publish

    Collaborators

    • alexandramarginean
    • jooshuys
    • studyportals-devops
    • jens-sp
    • armandduijnstudyportals
    • stormyy
    • stefanklokgieters
    • royvaneijndhovensp
    • borismo
    • dandobrescu
    • georgianaschipor
    • fationsh
    • jordi-studyportals
    • orlandoliccardo
    • stathis-iakovidis-studyportals
    • ozanborafikir
    • muratcolyaran1
    • alparslanylmaz
    • mrmaruf-studyportal
    • irinanicula
    • giampiero_sp
    • gilalves95
    • skrothapalli1