Define a qrl method inside my adminprovider like:
import {
$,
component$,
createContext,
Slot,
useContextProvider,
useStore,
} from "@builder.io/qwik";
export const AdminContext = createContext("AdminContext");
export const AdminContextProvider = component$(() => {
const admin = useStore({
loginStatus: false,
user: {},
toast: [],
});
const addToast$ = $((message, status) => {
admin.toast.push({ message: message, status: status });
});
useContextProvider(AdminContext, admin, addToast$);
return (
<>
<Slot />
</>
);
});
And call it like:
import {
$,
component$,
useClientEffect$,
useContext,
useStore,
} from "@builder.io/qwik";
import { AdminContext } from "~/context/AdminContext";
export default component$(() => {
const admin = useContext(AdminContext);
const addToast$ = useContext(AdminContext);
return (
<div id="App">
<div id="LoginPage">
<button onClick$={() => addToast$()}>
trigger toast
</button>
</div>
</div>
);
});
Error: addToast$ is not a function