forked from didirus/AstralRinth
Add TailwindCSS (#1252)
* Setup TailwindCSS * Fully setup configuration * Refactor some tailwind variables
This commit is contained in:
@@ -1,173 +1,176 @@
|
||||
/* eslint-disable no-undef */
|
||||
export const useUser = async (force = false) => {
|
||||
const user = useState('user', () => {})
|
||||
const user = useState("user", () => {});
|
||||
|
||||
if (!user.value || force || (user.value && Date.now() - user.value.lastUpdated > 300000)) {
|
||||
user.value = await initUser()
|
||||
user.value = await initUser();
|
||||
}
|
||||
|
||||
return user
|
||||
}
|
||||
return user;
|
||||
};
|
||||
|
||||
export const initUser = async () => {
|
||||
const auth = (await useAuth()).value
|
||||
const auth = (await useAuth()).value;
|
||||
|
||||
const user = {
|
||||
notifications: [],
|
||||
follows: [],
|
||||
lastUpdated: 0,
|
||||
}
|
||||
};
|
||||
|
||||
if (auth.user && auth.user.id) {
|
||||
try {
|
||||
const [follows, collections] = await Promise.all([
|
||||
useBaseFetch(`user/${auth.user.id}/follows`),
|
||||
useBaseFetch(`user/${auth.user.id}/collections`, { apiVersion: 3 }),
|
||||
])
|
||||
]);
|
||||
|
||||
user.collections = collections
|
||||
user.follows = follows
|
||||
user.lastUpdated = Date.now()
|
||||
user.collections = collections;
|
||||
user.follows = follows;
|
||||
user.lastUpdated = Date.now();
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
|
||||
return user
|
||||
}
|
||||
return user;
|
||||
};
|
||||
|
||||
export const initUserCollections = async () => {
|
||||
const auth = (await useAuth()).value
|
||||
const user = (await useUser()).value
|
||||
const auth = (await useAuth()).value;
|
||||
const user = (await useUser()).value;
|
||||
|
||||
if (auth.user && auth.user.id) {
|
||||
try {
|
||||
user.collections = await useBaseFetch(`user/${auth.user.id}/collections`, { apiVersion: 3 })
|
||||
user.collections = await useBaseFetch(`user/${auth.user.id}/collections`, { apiVersion: 3 });
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const initUserFollows = async () => {
|
||||
const auth = (await useAuth()).value
|
||||
const user = (await useUser()).value
|
||||
const auth = (await useAuth()).value;
|
||||
const user = (await useUser()).value;
|
||||
|
||||
if (auth.user && auth.user.id) {
|
||||
try {
|
||||
user.follows = await useBaseFetch(`user/${auth.user.id}/follows`)
|
||||
user.follows = await useBaseFetch(`user/${auth.user.id}/follows`);
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const initUserProjects = async () => {
|
||||
const auth = (await useAuth()).value
|
||||
const user = (await useUser()).value
|
||||
const auth = (await useAuth()).value;
|
||||
const user = (await useUser()).value;
|
||||
|
||||
if (auth.user && auth.user.id) {
|
||||
try {
|
||||
user.projects = await useBaseFetch(`user/${auth.user.id}/projects`)
|
||||
user.projects = await useBaseFetch(`user/${auth.user.id}/projects`);
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const userCollectProject = async (collection, projectId) => {
|
||||
const user = (await useUser()).value
|
||||
await initUserCollections()
|
||||
const user = (await useUser()).value;
|
||||
await initUserCollections();
|
||||
|
||||
const collectionId = collection.id
|
||||
const collectionId = collection.id;
|
||||
|
||||
const latestCollection = user.collections.find((x) => x.id === collectionId)
|
||||
const latestCollection = user.collections.find((x) => x.id === collectionId);
|
||||
if (!latestCollection) {
|
||||
throw new Error('This collection was not found. Has it been deleted?')
|
||||
throw new Error("This collection was not found. Has it been deleted?");
|
||||
}
|
||||
|
||||
const add = !latestCollection.projects.includes(projectId)
|
||||
const add = !latestCollection.projects.includes(projectId);
|
||||
const projects = add
|
||||
? [...latestCollection.projects, projectId]
|
||||
: [...latestCollection.projects].filter((x) => x !== projectId)
|
||||
: [...latestCollection.projects].filter((x) => x !== projectId);
|
||||
|
||||
const idx = user.collections.findIndex((x) => x.id === latestCollection.id)
|
||||
const idx = user.collections.findIndex((x) => x.id === latestCollection.id);
|
||||
if (idx >= 0) {
|
||||
user.collections[idx].projects = projects
|
||||
user.collections[idx].projects = projects;
|
||||
}
|
||||
|
||||
await useBaseFetch(`collection/${collection.id}`, {
|
||||
method: 'PATCH',
|
||||
method: "PATCH",
|
||||
body: {
|
||||
new_projects: projects,
|
||||
},
|
||||
apiVersion: 3,
|
||||
})
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export const userFollowProject = async (project) => {
|
||||
const user = (await useUser()).value
|
||||
const user = (await useUser()).value;
|
||||
|
||||
user.follows = user.follows.concat(project)
|
||||
project.followers++
|
||||
user.follows = user.follows.concat(project);
|
||||
project.followers++;
|
||||
|
||||
setTimeout(() => {
|
||||
useBaseFetch(`project/${project.id}/follow`, {
|
||||
method: 'POST',
|
||||
})
|
||||
})
|
||||
}
|
||||
method: "POST",
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
export const userUnfollowProject = async (project) => {
|
||||
const user = (await useUser()).value
|
||||
const user = (await useUser()).value;
|
||||
|
||||
user.follows = user.follows.filter((x) => x.id !== project.id)
|
||||
project.followers--
|
||||
user.follows = user.follows.filter((x) => x.id !== project.id);
|
||||
project.followers--;
|
||||
|
||||
setTimeout(() => {
|
||||
useBaseFetch(`project/${project.id}/follow`, {
|
||||
method: 'DELETE',
|
||||
})
|
||||
})
|
||||
}
|
||||
method: "DELETE",
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
export const resendVerifyEmail = async () => {
|
||||
const app = useNuxtApp()
|
||||
const app = useNuxtApp();
|
||||
|
||||
startLoading()
|
||||
startLoading();
|
||||
try {
|
||||
await useBaseFetch('auth/email/resend_verify', {
|
||||
method: 'POST',
|
||||
})
|
||||
await useBaseFetch("auth/email/resend_verify", {
|
||||
method: "POST",
|
||||
});
|
||||
|
||||
const auth = await useAuth()
|
||||
const auth = await useAuth();
|
||||
app.$notify({
|
||||
group: 'main',
|
||||
title: 'Email sent',
|
||||
group: "main",
|
||||
title: "Email sent",
|
||||
text: `An email with a link to verify your account has been sent to ${auth.value.user.email}.`,
|
||||
type: 'success',
|
||||
})
|
||||
type: "success",
|
||||
});
|
||||
} catch (err) {
|
||||
app.$notify({
|
||||
group: 'main',
|
||||
title: 'An error occurred',
|
||||
group: "main",
|
||||
title: "An error occurred",
|
||||
text: err.data.description,
|
||||
type: 'error',
|
||||
})
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
stopLoading()
|
||||
}
|
||||
stopLoading();
|
||||
};
|
||||
|
||||
export const logout = async () => {
|
||||
startLoading()
|
||||
const auth = await useAuth()
|
||||
startLoading();
|
||||
const auth = await useAuth();
|
||||
try {
|
||||
await useBaseFetch(`session/${auth.value.token}`, {
|
||||
method: 'DELETE',
|
||||
})
|
||||
} catch {}
|
||||
method: "DELETE",
|
||||
});
|
||||
} catch {
|
||||
/* empty */
|
||||
}
|
||||
|
||||
await useAuth('none')
|
||||
useCookie('auth-token').value = null
|
||||
await navigateTo('/')
|
||||
stopLoading()
|
||||
}
|
||||
await useAuth("none");
|
||||
useCookie("auth-token").value = null;
|
||||
await navigateTo("/");
|
||||
stopLoading();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user