This repository has been archived on 2023-10-27. You can view files and clone it, but cannot push or open issues or pull requests.
Files
scoresaber-reloaded/src/stores/scoresaber/friends.js
2023-10-17 23:41:42 +01:00

33 lines
831 B
JavaScript

import { writable } from "svelte/store";
import createPlayerStore from "./players";
import createPlayerService from "../../services/scoresaber/player";
export default () => {
const playerService = createPlayerService();
const { subscribe, unsubscribe: stateUnsubscribe, set } = writable([]);
const playerStore = createPlayerStore();
const playerStoreUnsubscribe = playerStore.subscribe(async (players) => {
const friends = await playerService.getFriends();
set(
players
.filter((p) => p && p.playerId && friends.includes(p.playerId))
.sort((a, b) => (a.name ? a.name.localeCompare(b.name) : 0))
);
});
const unsubscribe = () => {
stateUnsubscribe();
playerStoreUnsubscribe()();
playerService.destroyService();
};
return {
subscribe,
unsubscribe,
};
};