Files
iD/modules/modes/add_note.js
2020-09-23 10:44:38 -04:00

56 lines
1.2 KiB
JavaScript

import { t } from '../core/localizer';
import { behaviorDraw } from '../behavior/draw';
import { modeBrowse } from './browse';
import { modeSelectNote } from './select_note';
import { osmNote } from '../osm';
import { services } from '../services';
export function modeAddNote(context) {
var mode = {
id: 'add-note',
button: 'note',
description: t.html('modes.add_note.description'),
key: t('modes.add_note.key')
};
var behavior = behaviorDraw(context)
.on('click', add)
.on('cancel', cancel)
.on('finish', cancel);
function add(loc) {
var osm = services.osm;
if (!osm) return;
var note = osmNote({ loc: loc, status: 'open', comments: [] });
osm.replaceNote(note);
// force a reraw (there is no history change that would otherwise do this)
context.map().pan([0,0]);
context
.selectedNoteID(note.id)
.enter(modeSelectNote(context, note.id).newFeature(true));
}
function cancel() {
context.enter(modeBrowse(context));
}
mode.enter = function() {
context.install(behavior);
};
mode.exit = function() {
context.uninstall(behavior);
};
return mode;
}