import { defineStore } from "pinia"; import { ref, type Ref } from "vue"; import { useRoute } from "vue-router"; import axios, { CancelToken } from "axios"; import { api } from "@"; export const usePlayer = defineStore("player", () => { const station = ref(null); const playing = ref(false); const instance = ref(null); const register = (_instance) => { instance.value = _instance; }; const load = (station: api.StationInfo, start: bool = false) => { station.value = station; instance.value.src = station.value.url; instance.value.load(); if (start) { play(); } }; const play = () => { if (!instance.value.src) return; instance.value.play(); playing.value = true; }; const pause = () => { if (!instance.value.src) return; instance.value.pause(); playing.value = false; }; const toggle = () => { if (playing.value) { pause(); } else { play(); } }; return { station, playing, load, instance, register, play, pause, toggle }; });