| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import type { ProjectCompiler } from '../../../../../types/project-settings'
- import { sendMB } from '../../../infrastructure/event-tracking'
- import { postJSON } from '../../../infrastructure/fetch-json'
- import { debugConsole } from '@/utils/debugging'
- import { UserSettings } from '../../../../../types/user-settings'
- export type ProjectSettings = {
- compiler: ProjectCompiler
- imageName: string
- rootDocId: string
- spellCheckLanguage: string
- name: string
- }
- type SaveUserSettings = Partial<
- UserSettings & {
- spellCheckLanguage: ProjectSettings['spellCheckLanguage']
- }
- >
- export function saveUserSettings(
- key: keyof SaveUserSettings,
- value: SaveUserSettings[keyof SaveUserSettings]
- ) {
- sendMB('setting-changed', {
- changedSetting: key,
- changedSettingVal: value,
- })
- postJSON('/user/settings', {
- body: {
- [key]: value,
- },
- }).catch(debugConsole.error)
- }
- export const saveProjectSettings = async (
- projectId: string,
- data: Partial<ProjectSettings>
- ) => {
- await postJSON<never>(`/project/${projectId}/settings`, {
- body: {
- ...data,
- },
- })
- }
|