@xcpcio/board-app
Version:
XCPCIO Board App
37 lines (30 loc) • 863 B
text/typescript
import { acceptHMRUpdate, defineStore } from "pinia";
export const useUserStore = defineStore("user", () => {
/**
* Current name of the user.
*/
const savedName = ref("");
const previousNames = ref(new Set<string>());
const usedNames = computed(() => Array.from(previousNames.value));
const otherNames = computed(() => usedNames.value.filter(name => name !== savedName.value));
/**
* Changes the current name of the user and saves the one that was used
* before.
*
* @param name - new name to set
*/
function setNewName(name: string) {
if (savedName.value) {
previousNames.value.add(savedName.value);
}
savedName.value = name;
}
return {
setNewName,
otherNames,
savedName,
};
});
if (import.meta.hot) {
import.meta.hot.accept(acceptHMRUpdate(useUserStore as any, import.meta.hot));
}