Ziggy's route helper global einbinden bei Svelte

  • Hallöchen!

    Hat hier jemand schon Erfahrung gemacht oder weiß wie ich es bewerkstelligen kann das ich die Helper Funktion route() global in allen Komponenten verfügbar machen kann?

    Alles was ich zu gefunden habe, ist mehr eine Notlösung als eine echte Lösung des ganzen X/.

    Denn in jeder Komponente nun const route = window.route; einfügen sehe ich nicht gerade als Lösung, zumal das scheinbar nur lokal hilft beim Bauen aber weiterhin Fehler wirft das route() nicht definiert sei.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Das wäre doppelt gemobbelt, wären ja Zustände wie bei Nvidia, für etwas vorhandenes etwas machen ^^.

    Ich bräuchte halt echt die Funktion global verfügbar, wie man es zB auch von React oder Vue kennt.

    Da ist das ja wie man hier sieht ganz einfach:

    JavaScript
    import { ZiggyVue } from 'ziggy-js';
    import { Ziggy } from './ziggy';
    
    const app = createApp({ render: () => h(App, props) })
       .use(plugin)
       .use(i18n)
       .use(ZiggyVue, Ziggy);
       
    app.mount(el);

    So hat man dann eben Ziggy und seine Funktionen global verfügbar, für Svelte suche ich das eben auch, sonst müsste ich es in knapp 300 Komponenten jetzt nachträglich überall importieren und das kann ja nicht der Zweck sein bei etwas fundermentalem.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Das hab ich auch gelesen, war aber eine "Notlösung" die in jede Komponente muss, ich probiere das mal eben lokal aus :) .


    Update:

    Build läuft nun durch, hab da was gefunden in einem Repo:

    JavaScript
    import { Ziggy } from '@/ziggy.js';
    import { route } from 'ziggy-js';
    
    global.route = (name, params, absolute, config) => route(name, params, absolute, Ziggy);

    Es haut mir zwar noch immer haufen Meldungen raus (weswegen SSR nicht gestartet werden kann), aber zumindest läuft der Build wieder:

    Code
    1:30:39 AM [vite-plugin-svelte] /home/syntafin/projects/InertiaApp/resources/js/Pages/Auth/Login.svelte:26:24 'route' is not defined
    24:         <p class="mb-7 text-xs">
    25:             Verify your Character in Seconds & get exclusive features. Don’t have an account?
    26:             <Link href={route("register")} class="text-xs font-semibold text-primary-main hover:underline">Sign up</Link
                                ^
    27:             >.
    28:         </p>

    Besser als nix also :D

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

    Einmal editiert, zuletzt von Syntafin (31. Juli 2024 um 01:32)

  • Denn in jeder Komponente nun const route = window.route; einfügen sehe ich nicht gerade als Lösung, zumal das scheinbar nur lokal hilft beim Bauen aber weiterhin Fehler wirft das route() nicht definiert sei..<

    Wenn du die Variable mit window.route = function(){blablabla}; deklariert hast, kannst du die überall einfach mit route() aufruf ohne irgendwas davor. Alles was im window Objekt ist ist auch Ohne Objekt direkt aufrufbar

    Code
    window.route = function() {
        console.log("Hallo");
    }
    
    route();
  • Danke für den Versuch der Hilfe hierbei.

    Jedoch ungetestet kann ich dir anhand des Startbeitrages + Thementitels sagen, das das so nicht funktionieren wird (nein es würde sogar alles Crashen)

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!