forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			60 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import Combine from "../Base/Combine" | ||
|  | import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig" | ||
|  | import { Store, UIEventSource } from "../../Logic/UIEventSource" | ||
|  | import { BBox } from "../../Logic/BBox" | ||
|  | import Loc from "../../Models/Loc" | ||
|  | import { OsmConnection } from "../../Logic/Osm/OsmConnection" | ||
|  | import Translations from "../i18n/Translations" | ||
|  | import { SubtleButton } from "../Base/SubtleButton" | ||
|  | import Svg from "../../Svg" | ||
|  | import { Utils } from "../../Utils" | ||
|  | import { MapillaryLink } from "./MapillaryLink" | ||
|  | import TranslatorsPanel from "./TranslatorsPanel" | ||
|  | import { OpenIdEditor, OpenJosm } from "./CopyrightPanel" | ||
|  | 
 | ||
|  | export class ActionButtons extends Combine { | ||
|  |     constructor(state: { | ||
|  |         readonly layoutToUse: LayoutConfig | ||
|  |         readonly currentBounds: Store<BBox> | ||
|  |         readonly locationControl: Store<Loc> | ||
|  |         readonly osmConnection: OsmConnection | ||
|  |         readonly isTranslator: Store<boolean> | ||
|  |     }) { | ||
|  |         const imgSize = "h-6 w-6" | ||
|  |         const iconStyle = "height: 1.5rem; width: 1.5rem" | ||
|  |         const t = Translations.t.general.attribution | ||
|  | 
 | ||
|  |         super([ | ||
|  |             new SubtleButton(Svg.liberapay_ui(), t.donate, { | ||
|  |                 url: "https://liberapay.com/pietervdvn/", | ||
|  |                 newTab: true, | ||
|  |                 imgSize, | ||
|  |             }), | ||
|  |             new SubtleButton(Svg.bug_ui(), t.openIssueTracker, { | ||
|  |                 url: "https://github.com/pietervdvn/MapComplete/issues", | ||
|  |                 newTab: true, | ||
|  |                 imgSize, | ||
|  |             }), | ||
|  |             new SubtleButton( | ||
|  |                 Svg.statistics_ui(), | ||
|  |                 t.openOsmcha.Subs({ theme: state.layoutToUse.title }), | ||
|  |                 { | ||
|  |                     url: Utils.OsmChaLinkFor(31, state.layoutToUse.id), | ||
|  |                     newTab: true, | ||
|  |                     imgSize, | ||
|  |                 } | ||
|  |             ), | ||
|  |             new SubtleButton(Svg.mastodon_ui(), t.followOnMastodon, { | ||
|  |                 url: "https://en.osm.town/@MapComplete", | ||
|  |                 newTab: true, | ||
|  |                 imgSize, | ||
|  |             }), | ||
|  |             new OpenIdEditor(state, iconStyle), | ||
|  |             new MapillaryLink(state, iconStyle), | ||
|  |             new OpenJosm(state, iconStyle).SetClass("hidden-on-mobile"), | ||
|  |             new TranslatorsPanel(state, iconStyle), | ||
|  |         ]) | ||
|  |         this.SetClass("block w-full link-no-underline") | ||
|  |     } | ||
|  | } |