feat: Retain toggle label positions

This commit is contained in:
Sidharth Vinod
2024-11-13 21:07:57 +05:30
parent 09e705c3ae
commit f954dfab61
3 changed files with 22 additions and 14 deletions
+17 -9
View File
@@ -10,6 +10,7 @@
import { env } from '$lib/util/env';
import { dismissPromotion, getActivePromotion } from '$lib/util/promos/promo';
import { stateStore } from '$lib/util/state';
import { MCBaseURL } from '$lib/util/util';
import type { ComponentProps } from 'svelte';
import DropdownNavMenu from './DropdownNavMenu.svelte';
import Privacy from './Privacy.svelte';
@@ -18,7 +19,7 @@
const { isEnabledMermaidChartLinks } = env;
let isMenuOpen = $state(false);
const isReferral = document.referrer.includes(MCBaseURL);
function toggleMenu() {
isMenuOpen = !isMenuOpen;
}
@@ -83,23 +84,30 @@
{/if}
<div class="navbar z-50 bg-primary p-0 shadow-lg">
<div class="mx-2 flex-1 px-2">
<span class="flex items-center justify-center gap-2 font-bold">
<div class="mx-2 flex flex-1 gap-2 px-2">
<a href="/"><img class="size-6" src="./favicon.svg" alt="Mermaid Live Editor" /></a>
<div
class="flex items-center justify-center gap-2 font-bold"
class:flex-row-reverse={isReferral}>
<a href="/">Mermaid Live Editor</a>
{#if isEnabledMermaidChartLinks}
<input
type="checkbox"
class="toggle toggle-primary"
id="editorMode"
checked={isReferral}
onclick={() => {
logEvent('playgroundToggle');
window.location.href = `https://mermaidchart.com/play#${$stateStore.serialized}`;
logEvent('playgroundToggle', { isReferred: isReferral });
window.open(
`${MCBaseURL}/play#${$stateStore.serialized}`,
'_self',
// Do not send referrer header, if the user already came from playground
isReferral ? 'noreferrer' : ''
);
}} />
<a href="https://mermaidchart.com/play#{$stateStore.serialized}">
Mermaid Chart Playground
</a>
<a href="{MCBaseURL}/play#{$stateStore.serialized}">Mermaid Chart Playground</a>
{/if}
</span>
</div>
</div>
<label
+4 -2
View File
@@ -1,8 +1,9 @@
import { initURLSubscription, loadState, updateCodeStore } from './state';
import { plausible, initAnalytics } from './stats';
import { dev } from '$app/environment';
import { loadDataFromUrl } from './fileLoaders/loader';
import { initLoading } from './loading';
import { applyMigrations } from './migrations';
import { initURLSubscription, loadState, updateCodeStore } from './state';
import { initAnalytics, plausible } from './stats';
export const loadStateFromURL = (): void => {
loadState(window.location.hash.slice(1));
@@ -26,6 +27,7 @@ export const initHandler = async (): Promise<void> => {
export const isMac = navigator.platform.toUpperCase().includes('MAC');
export const cmdKey = isMac ? 'Cmd' : 'Ctrl';
export const MCBaseURL = dev ? 'http://localhost:5174' : 'https://mermaidchart.com';
let count = 0;
export const errorDebug = (limit = 1000) => {
+1 -3
View File
@@ -1,5 +1,4 @@
<script lang="ts">
import { dev } from '$app/environment';
import { base } from '$app/paths';
import Actions from '$lib/components/Actions.svelte';
import Card from '$lib/components/Card/Card.svelte';
@@ -11,10 +10,9 @@
import type { DocumentationConfig, EditorMode, Tab, ValidatedState } from '$lib/types';
import { env } from '$lib/util/env';
import { inputStateStore, stateStore, updateCodeStore } from '$lib/util/state';
import { cmdKey, initHandler, syncDiagram } from '$lib/util/util';
import { cmdKey, initHandler, MCBaseURL, syncDiagram } from '$lib/util/util';
import { onMount } from 'svelte';
const MCBaseURL = dev ? 'http://localhost:5174' : 'https://mermaidchart.com';
const docURLBase = 'https://mermaid.js.org';
const docMap: DocumentationConfig = {
graph: {