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 :unamused_face:.

    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.

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

    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.

  • 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 :grinning_squinting_face:

    Einmal editiert, zuletzt von Viper6307 (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();

Jetzt mitmachen!

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