function panelToDraw()

in modules/ui/assistant.js [283:335]


    function panelToDraw() {

        var mode = context.mode();

        if (mode.id === 'save') {

            if (context.connection() && context.connection().authenticated()) {
                return panelSave(context);
            } else {
                return panelAuthenticating(context);
            }

        } else if (mode.id === 'add-point' || mode.id === 'add-line' ||
            mode.id === 'add-area' || mode.id === 'draw-line' ||
            mode.id === 'draw-area') {

            return panelAddDrawGeometry(context, mode);

        } else if (mode.id === 'select') {

            return panelSelect(context, mode.selectedIDs());

        } else if (mode.id === 'drag-node' && mode.restoreSelectedIDs().length) {

            return panelSelect(context, mode.restoreSelectedIDs());

        } else if (mode.id === 'select-note') {
            var note = context.connection() && context.connection().getNote(mode.selectedNoteID());
            if (note) {
                return panelSelectNote(context, note);
            }
        } else if (mode.id === 'select-error') {
            if (mode.selectedErrorService() === 'keepRight') {
                return panelSelectKeepRightError(context, mode.selectedErrorID());
            } else if (mode.selectedErrorService() === 'improveOSM') {
                return panelSelectImproveOSMError(context, mode.selectedErrorID());
            }
        } else if (mode.id === 'select-data') {
            return panelSelectCustomData(context, mode.selectedDatum());
        } else if (!didEditAnythingYet) {

            if (savedChangeset) {
                return panelSuccess(context);
            }
            if (context.history().hasRestorableChanges()) {
                return panelRestore(context);
            }
            return panelWelcome(context);
        }

        scheduleCurrentLocationUpdate();
        return panelMapping(context);
    }