maj pricing, configuration du prisma
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
{
|
||||
"/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js",
|
||||
"/api/entities/route": "app/api/entities/route.js",
|
||||
"/api/projects/[id]/route": "app/api/projects/[id]/route.js",
|
||||
"/api/auth/register/route": "app/api/auth/register/route.js",
|
||||
"/api/projects/route": "app/api/projects/route.js",
|
||||
"/api/user/profile/route": "app/api/user/profile/route.js",
|
||||
"/dashboard/page": "app/dashboard/page.js",
|
||||
"/login/page": "app/login/page.js",
|
||||
"/page": "app/page.js",
|
||||
"/project/[id]/page": "app/project/[id]/page.js",
|
||||
"/project/[id]/world/page": "app/project/[id]/world/page.js"
|
||||
"/profile/page": "app/profile/page.js",
|
||||
"/signup/page": "app/signup/page.js"
|
||||
}
|
||||
@@ -52,6 +52,15 @@ const api = {
|
||||
});
|
||||
}
|
||||
},
|
||||
// --- USER ---
|
||||
user: {
|
||||
async updateProfile (data) {
|
||||
return api.request('/user/profile', {
|
||||
method: 'PUT',
|
||||
body: JSON.stringify(data)
|
||||
});
|
||||
}
|
||||
},
|
||||
// --- PROJECTS ---
|
||||
projects: {
|
||||
async list () {
|
||||
@@ -308,12 +317,36 @@ const useAuth = ()=>{
|
||||
}, [
|
||||
user
|
||||
]);
|
||||
const updateProfile = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(async (updates)=>{
|
||||
if (!user) return;
|
||||
try {
|
||||
// Unpack everything that can be updated into a flat object for the API
|
||||
const apiUpdates = {};
|
||||
if (updates.name !== undefined) apiUpdates.name = updates.name;
|
||||
if (updates.avatar !== undefined) apiUpdates.avatar = updates.avatar;
|
||||
if (updates.bio !== undefined) apiUpdates.bio = updates.bio;
|
||||
if (updates.preferences?.dailyWordGoal !== undefined) apiUpdates.dailyWordGoal = updates.preferences.dailyWordGoal;
|
||||
// Make the API call to update DB
|
||||
await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].user.updateProfile(apiUpdates);
|
||||
// Update local state
|
||||
setUser((prev)=>prev ? {
|
||||
...prev,
|
||||
...updates
|
||||
} : null);
|
||||
} catch (err) {
|
||||
console.error('Failed to update profile:', err);
|
||||
throw err;
|
||||
}
|
||||
}, [
|
||||
user
|
||||
]);
|
||||
return {
|
||||
user,
|
||||
login,
|
||||
signup,
|
||||
logout,
|
||||
incrementUsage,
|
||||
updateProfile,
|
||||
loading
|
||||
};
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
self.__NEXT_FONT_MANIFEST="{\n \"app\": {\n \"[project]/Documents/00 - projet/plumeia/src/app/dashboard/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/login/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ]\n },\n \"appUsingSizeAdjust\": true,\n \"pages\": {},\n \"pagesUsingSizeAdjust\": false\n}"
|
||||
self.__NEXT_FONT_MANIFEST="{\n \"app\": {\n \"[project]/Documents/00 - projet/plumeia/src/app/dashboard/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/login/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/profile/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/signup/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ]\n },\n \"appUsingSizeAdjust\": true,\n \"pages\": {},\n \"pagesUsingSizeAdjust\": false\n}"
|
||||
@@ -12,11 +12,11 @@
|
||||
"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2",
|
||||
"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2"
|
||||
],
|
||||
"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page": [
|
||||
"[project]/Documents/00 - projet/plumeia/src/app/profile/page": [
|
||||
"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2",
|
||||
"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2"
|
||||
],
|
||||
"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page": [
|
||||
"[project]/Documents/00 - projet/plumeia/src/app/signup/page": [
|
||||
"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2",
|
||||
"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2"
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user