JSFiddle - React, Tailwind, and code Playground

by Nalin Sajwan

TypeScript

enum defaultOnboardingArea {
  SETTINGS = 'SETTINGS',
  CATALOGUES = 'CATALOGUES',
}

enum defaultOnboardingSection {
  VENUES = 'VENUES',
  PAGES = 'PAGES',
  PRODUCT = 'PRODUCT',
  REGISTER_PROFILE = 'REGISTER_PROFILE',
}

enum OnboardingAction{
  READ = 'READ',
  CREATE = 'CREATE',
  UPDATE = 'UPDATE',
  DELETE = 'DELETE',
}

const defaultOnboarding = {
  areas: [
    {
      name: defaultOnboardingArea.SETTINGS,
      sections: [
        {
          name: defaultOnboardingSection.VENUES,
          actions: [
            {
              name: OnboardingAction.READ,
              status: false,
            }
          ]
        }
      ]
    },
    {
      name: defaultOnboardingArea.SETTINGS,
      sections: [
        {
          name: defaultOnboardingSection.REGISTER_PROFILE,
          actions: [
            {
              name: OnboardingAction.READ,
              status: false,
            }
          ]
        }
      ]
    },
    {
      name: defaultOnboardingArea.SETTINGS,
      sections: [
        {
          name: defaultOnboardingSection.VENUES,
          actions: [
            {
              name: OnboardingAction.READ,
              status: false,
            }
          ]
        }
      ]
    }
  ],
};

const onBoardingFlat = {};

defaultOnboarding.areas.forEach(area => {
  area.sections.forEach(section => {
    section.actions.forEach(action => {
    	console.log(area.name, section.name, action.name);
    	/* console.log(`${area.name}~${section.name}~${action.name}`); */
      onBoardingFlat[ `${area.name}~${section.name}~${action.name}` ] = action.status;
    });
  });
});
console.log('defaultOnboarding ==> ', defaultOnboarding);
console.log('onBoardingFlat ==> ', onBoardingFlat);