modules/ui/rapid_splash.js (77 lines of code) (raw):

import { t } from '../core/localizer'; import { uiIntro } from './intro'; import { icon } from './intro/helper'; import { uiModal } from './modal'; import { prefs } from '../core/preferences'; export function uiRapidSplash(context) { return function(selection) { if (prefs('sawRapidSplash')) return; prefs('sawRapidSplash', true); const modalSelection = uiModal(selection); modalSelection.select('.modal') .attr('class', 'modal rapid-modal modal-splash'); // RapiD styling let introModal = modalSelection.select('.content'); introModal .append('div') .attr('class','modal-section') .append('h3').text(t('rapid_splash.welcome')); introModal .append('div') .attr('class','modal-section') .append('p') .html(t('rapid_splash.text', { rapidicon: icon('#iD-logo-rapid', 'logo-rapid'), walkthrough: icon('#iD-logo-walkthrough', 'logo-walkthrough'), edit: icon('#iD-logo-features', 'logo-features') })); let buttonWrap = introModal .append('div') .attr('class', 'modal-actions'); let walkthrough = buttonWrap .append('button') .attr('class', 'walkthrough') .on('click', () => { context.container().call(uiIntro(context, false)); modalSelection.close(); }); walkthrough .append('svg') .attr('class', 'logo logo-features') .append('use') .attr('xlink:href', '#iD-logo-walkthrough'); walkthrough .append('div') .text(t('rapid_splash.walkthrough')); let rapidWalkthrough = buttonWrap .append('button') .attr('class', 'rapid-walkthrough') .on('click', () => { context.container().call(uiIntro(context, true)); modalSelection.close(); }); rapidWalkthrough .append('svg') .attr('class', 'logo logo-rapid') .append('use') .attr('xlink:href', '#iD-logo-rapid'); rapidWalkthrough .append('div') .text(t('rapid_splash.skip_to_rapid')); let startEditing = buttonWrap .append('button') .attr('class', 'start-editing') .on('click', () => { modalSelection.close(); }); startEditing .append('svg') .attr('class', 'logo logo-features') .append('use') .attr('xlink:href', '#iD-logo-features'); startEditing .append('div') .text(t('rapid_splash.start')); modalSelection.select('button.close') .attr('class', 'hide'); }; }