Overhaul settings and implement user preferences. Also implements dark theme toggle as part of the user settings.
This commit is contained in:
parent
b84f0907a8
commit
727746030c
17 changed files with 760 additions and 378 deletions
|
@ -7,14 +7,44 @@ export async function getSetting(key)
|
|||
select: { value: true }
|
||||
});
|
||||
|
||||
console.log(`getSetting(${key})`, setting);
|
||||
|
||||
return setting?.value ? JSON.parse(setting.value) : null;
|
||||
}
|
||||
|
||||
export async function setSetting(key, value)
|
||||
{
|
||||
//Replace all CRLFs with LF
|
||||
if (typeof value === 'string')
|
||||
{
|
||||
value = value.replace(/\r\n/g, '\n').trim();
|
||||
}
|
||||
|
||||
await prisma.setting.upsert({
|
||||
where: { key },
|
||||
update: { value: JSON.stringify(value) },
|
||||
create: { key, value }
|
||||
create: { key, value: JSON.stringify(value) }
|
||||
});
|
||||
}
|
||||
|
||||
export async function getUserPreference(userId, key)
|
||||
{
|
||||
const pref = await prisma.userPreference.findUnique({
|
||||
where: { userId_key: { userId, key } },
|
||||
select: { value: true }
|
||||
});
|
||||
return pref?.value ? JSON.parse(pref.value) : null;
|
||||
}
|
||||
|
||||
export async function setUserPreference(userId, key, value)
|
||||
{
|
||||
if (typeof value === 'string')
|
||||
{
|
||||
value = value.replace(/\r\n/g, '\n').trim();
|
||||
}
|
||||
await prisma.userPreference.upsert({
|
||||
where: { userId_key: { userId, key } },
|
||||
update: { value: JSON.stringify(value) },
|
||||
create: { userId, key, value: JSON.stringify(value) }
|
||||
});
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue