コード例 #1
0
const GuideStatusPage = (props) => {

  const handleClick = function handleClick(e, page, path) {
    e.preventDefault();
    props.changePage(page, path);
  };

  const onboardingData = props.onboarding_data;

  const nextPage = nextPageName(onboardingData);

  const title = nextPage ?
        t('web.admin.onboarding.guide.status_page.title', { name: props.name }) :
        t('web.admin.onboarding.guide.status_page.title_done');

  const todoDescPartial = div([
    p({ className: css.description }, t('web.admin.onboarding.guide.status_page.description_p1')),
    p({ className: css.description }, t('web.admin.onboarding.guide.status_page.description_p2')),
  ]);

  const doneDescPartial = div([
    p({ className: css.description },
      t('web.admin.onboarding.guide.status_page.congratulation_p1.content',
        { knowledge_base_link: a(
          { href: 'http://support.sharetribe.com/knowledgebase/articles/892140',
            target: '_blank',
            rel: 'noreferrer',
            alt: t('web.admin.onboarding.guide.status_page.congratulation_p1.knowledge_base_alt'),
          },
          t('web.admin.onboarding.guide.status_page.congratulation_p1.knowledge_base_link')),
        })),
    p({ className: css.description },
      t('web.admin.onboarding.guide.status_page.congratulation_p2.content',
        { marketplace_guide_link: a(
          { href: 'https://www.sharetribe.com/academy/guide/',
            target: '_blank',
            rel: 'noreferrer',
            alt: t('web.admin.onboarding.guide.status_page.congratulation_p2.marketplace_guide_alt'),
          },
          t('web.admin.onboarding.guide.status_page.congratulation_p2.marketplace_guide_link')),
        })),
    p({ className: css.description },
      t('web.admin.onboarding.guide.status_page.congratulation_p3.content',
         { contact_support_link: a(
           { 'data-uv-trigger': 'contact',
             href: 'mailto:support@sharetribe.com',
             title: t('web.admin.onboarding.guide.status_page.congratulation_p3.contact_support_title'),
           },
           t('web.admin.onboarding.guide.status_page.congratulation_p3.contact_support_link')),
         })),
  ]);

  const description = nextPage ? todoDescPartial : doneDescPartial;

  const { routes } = props;

  const links = {
    slogan_and_description: {
      link_title: 'web.admin.onboarding.guide.status_page.slogan_and_description',
      next_link_title: 'web.admin.onboarding.guide.next_step.slogan_and_description',
      path: routes.admin_getting_started_guide_slogan_and_description_path(),
    },
    cover_photo: {
      link_title: 'web.admin.onboarding.guide.status_page.cover_photo',
      next_link_title: 'web.admin.onboarding.guide.next_step.cover_photo',
      path: routes.admin_getting_started_guide_cover_photo_path(),
    },
    filter: {
      link_title: 'web.admin.onboarding.guide.status_page.filter',
      next_link_title: 'web.admin.onboarding.guide.next_step.filter',
      path: routes.admin_getting_started_guide_filter_path(),
    },
    paypal: {
      link_title: 'web.admin.onboarding.guide.status_page.paypal',
      next_link_title: 'web.admin.onboarding.guide.next_step.paypal',
      path: routes.admin_getting_started_guide_paypal_path(),
    },
    listing: {
      link_title: 'web.admin.onboarding.guide.status_page.listing',
      next_link_title: 'web.admin.onboarding.guide.next_step.listing',
      path: routes.admin_getting_started_guide_listing_path(),
    },
    invitation: {
      link_title: 'web.admin.onboarding.guide.status_page.invitation',
      next_link_title: 'web.admin.onboarding.guide.next_step.invitation',
      path: routes.admin_getting_started_guide_invitation_path(),
    },
  };

  return div({ className: 'container' }, [
    h2({ className: css.title }, title),
    description,
    hr({ className: css.sectionSeparator }),

    ul({ className: css.stepList }, [
      li({ className: css.stepListItemDone }, [
        span({ className: css.stepListLink }, [
          span({ className: css.stepListCheckbox }),
          t('web.admin.onboarding.guide.status_page.create_your_marketplace'),
        ]),
      ]),
    ].concat(onboardingData.map((step) => {
      const page = step.step;
      const stepListItem = step.complete ?
              css.stepListItemDone :
              css.stepListItem;

      return li({ className: stepListItem }, [
        a({
          className: css.stepListLink,
          onClick: (e) => handleClick(e, page, links[page].path),
          href: links[page].path,
        }, [
          span({ className: css.stepListCheckbox }),
          t(links[page].link_title),
        ]),
      ]);
    }))),

    nextPage ?
      a({
        className: css.nextButton,
        href: links[nextPage].path,
        onClick: (e) => handleClick(e, nextPage, links[nextPage].path),
      }, t(links[nextPage].next_link_title)) :
      null,
  ]);
};
コード例 #2
0
ファイル: GuideStatusPage.js プロジェクト: zooldk/sharetribe
const GuideStatusPage = (props) => {
  const handleClick = function handleClick(e, path) {
    e.preventDefault();
    props.changePage(path);
  };

  const onboardingData = props.onboarding_data;

  // TODO: interpolating translation strings needs more thinking
  const title = props.nextStep ?
    props.t('title').replace(/%\{(\w+)\}/g, props.name) :
    props.t('title_done');

  const todoDescPartial = div([
    p({ className: css.description }, props.t('description_p1')),
    p({ className: css.description }, props.t('description_p2')),
  ]);

  const doneDescPartial = div([
    p({
      className: css.description,
      dangerouslySetInnerHTML: { __html: props.t('congratulation_p1') }, // eslint-disable-line react/no-danger
    }),
    p({
      className: css.description,
      dangerouslySetInnerHTML: { __html: props.t('congratulation_p2') }, // eslint-disable-line react/no-danger
    }),
    p({
      className: css.description,
      dangerouslySetInnerHTML: { __html: props.t('congratulation_p3') }, // eslint-disable-line react/no-danger
    }),
  ]);

  const description = props.nextStep ? todoDescPartial : doneDescPartial;

  return div({ className: 'container' }, [
    h2({ className: css.title }, title),
    description,
    hr({ className: css.sectionSeparator }),

    ul({ className: css.stepList }, [
      li({ className: css.stepListItemDone }, [
        span({ className: css.stepListLink }, [
          span({ className: css.stepListCheckbox }),
          props.t('create_your_marketplace'),
        ]),
      ]),
    ].concat(onboardingData.map((step) => {
      const key = step.step;
      const stepListItem = step.complete ?
              css.stepListItemDone :
              css.stepListItem;

      return li({ className: stepListItem, key }, [
        a({
          className: css.stepListLink,
          onClick: (e) => handleClick(e, `/${step.sub_path}`),
          href: `${props.initialPath}/${step.sub_path}`,
        }, [
          span({ className: css.stepListCheckbox }),
          props.t(key),
        ]),
      ]);
    }))),

    props.nextStep ?
      a({
        className: css.nextButton,
        href: `${props.initialPath}/${props.nextStep.link}`,
        onClick: (e) => handleClick(e, `/${props.nextStep.link}`),
      }, props.nextStep.title) :
      null,
  ]);
};
コード例 #3
0
const GuideStatusPage = (props) => {
  const handleClick = function handleClick(e, path) {
    e.preventDefault();
    props.changePage(path);
  };

  const onboardingData = props.onboarding_data;

  const title = props.nextStep ?
        t('web.admin.onboarding.guide.status_page.title', { name: props.name }) :
        t('web.admin.onboarding.guide.status_page.title_done');

  const todoDescPartial = div([
    p({ className: css.description }, t('web.admin.onboarding.guide.status_page.description_p1')),
    p({ className: css.description }, t('web.admin.onboarding.guide.status_page.description_p2')),
  ]);

  const doneDescPartial = div([
    p({ className: css.description },
      t('web.admin.onboarding.guide.status_page.congratulation_p1.content',
        { knowledge_base_link: a(
          { href: 'http://support.sharetribe.com/knowledgebase/articles/892140-what-to-do-after-the-basic-setup-of-your-marketpla',
            target: '_blank',
            rel: 'noreferrer',
            alt: t('web.admin.onboarding.guide.status_page.congratulation_p1.knowledge_base_alt'),
          }),
        })),
    p({ className: css.description },
      t('web.admin.onboarding.guide.status_page.congratulation_p2.content',
        { marketplace_guide_link: a(
          { href: 'https://www.sharetribe.com/academy/guide/',
            target: '_blank',
            rel: 'noreferrer',
            alt: t('web.admin.onboarding.guide.status_page.congratulation_p2.marketplace_guide_alt'),
          },
          t('web.admin.onboarding.guide.status_page.congratulation_p2.marketplace_guide_link')),
        })),
    p({ className: css.description },
      t('web.admin.onboarding.guide.status_page.congratulation_p3.content',
         { contact_support_link: a(
           { 'data-uv-trigger': 'contact',
             href: 'mailto:support@sharetribe.com',
             title: t('web.admin.onboarding.guide.status_page.congratulation_p3.contact_support_title'),
           },
           t('web.admin.onboarding.guide.status_page.congratulation_p3.contact_support_link')),
         })),
  ]);

  const description = props.nextStep ? todoDescPartial : doneDescPartial;

  return div({ className: 'container' }, [
    h2({ className: css.title }, title),
    description,
    hr({ className: css.sectionSeparator }),

    ul({ className: css.stepList }, [
      li({ className: css.stepListItemDone }, [
        span({ className: css.stepListLink }, [
          span({ className: css.stepListCheckbox }),
          t('web.admin.onboarding.guide.status_page.create_your_marketplace'),
        ]),
      ]),
    ].concat(onboardingData.map((step) => {
      const key = step.step;
      const stepListItem = step.complete ?
              css.stepListItemDone :
              css.stepListItem;

      const titles = {
        slogan_and_description: 'web.admin.onboarding.guide.status_page.slogan_and_description',
        cover_photo: 'web.admin.onboarding.guide.status_page.cover_photo',
        filter: 'web.admin.onboarding.guide.status_page.filter',
        paypal: 'web.admin.onboarding.guide.status_page.paypal',
        listing: 'web.admin.onboarding.guide.status_page.listing',
        invitation: 'web.admin.onboarding.guide.status_page.invitation',
      };

      return li({ className: stepListItem, key }, [
        a({
          className: css.stepListLink,
          onClick: (e) => handleClick(e, `/${step.sub_path}`),
          href: `${props.initialPath}/${step.sub_path}`,
        }, [
          span({ className: css.stepListCheckbox }),
          t(titles[key]),
        ]),
      ]);
    }))),

    props.nextStep ?
      a({
        className: css.nextButton,
        href: `${props.initialPath}/${props.nextStep.link}`,
        onClick: (e) => handleClick(e, `/${props.nextStep.link}`),
      }, props.nextStep.title) :
      null,
  ]);
};