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")
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |