mirror of
https://github.com/ccmdi/obsidian-map-plus.git
synced 2026-07-22 06:43:14 +00:00
feat: coordinate paste support
This commit is contained in:
parent
1cefcb2829
commit
2e410a0e38
2 changed files with 46 additions and 1 deletions
|
|
@ -129,6 +129,7 @@ export class MapSettingTab extends PluginSettingTab {
|
|||
.setValue(this.plugin.settings.enableSearchGeocoding)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.enableSearchGeocoding = value;
|
||||
this.plugin.refreshAllMapViews();
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
|
||||
|
|
|
|||
|
|
@ -589,9 +589,53 @@ export class MapBasesView extends BasesView {
|
|||
}
|
||||
};
|
||||
|
||||
const handleCoordinatePaste = (query: string): boolean => {
|
||||
const parsed = LatLng.parse(query);
|
||||
if (parsed && this.deck) {
|
||||
this.deck.setProps({
|
||||
initialViewState: {
|
||||
MapView: {
|
||||
latitude: parsed.lat,
|
||||
longitude: parsed.lng,
|
||||
zoom: 12,
|
||||
transitionDuration: 800,
|
||||
transitionInterpolator: new FlyToInterpolator(),
|
||||
}
|
||||
}
|
||||
});
|
||||
searchInput.value = LatLng.toString(parsed);
|
||||
resultsContainer.empty();
|
||||
resultsContainer.removeClass('visible');
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
searchInput.addEventListener('paste', (e) => {
|
||||
e.preventDefault();
|
||||
const pastedText = e.clipboardData?.getData('text')?.trim() || '';
|
||||
|
||||
if (handleCoordinatePaste(pastedText)) {
|
||||
return;
|
||||
}
|
||||
|
||||
searchInput.value = pastedText;
|
||||
searchInput.dispatchEvent(new Event('input'));
|
||||
});
|
||||
|
||||
searchInput.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Enter') {
|
||||
const query = searchInput.value.trim();
|
||||
|
||||
if (handleCoordinatePaste(query)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
searchInput.addEventListener('input', () => {
|
||||
const query = searchInput.value.trim();
|
||||
|
||||
|
||||
if (searchTimeout) {
|
||||
window.clearTimeout(searchTimeout);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue