user-ui-settings.ts 971 B

12345678910111213141516171819202122232425262728
  1. import {
  2. Schema, Model, Document,
  3. } from 'mongoose';
  4. import { getOrCreateModel } from '@growi/core';
  5. import { SidebarContentsType } from '~/interfaces/ui';
  6. import { IUserUISettings } from '~/interfaces/user-ui-settings';
  7. export interface UserUISettingsDocument extends IUserUISettings, Document {}
  8. export type UserUISettingsModel = Model<UserUISettingsDocument>
  9. const schema = new Schema<UserUISettingsDocument, UserUISettingsModel>({
  10. user: { type: Schema.Types.ObjectId, ref: 'User', unique: true },
  11. isSidebarCollapsed: { type: Boolean, default: false },
  12. currentSidebarContents: {
  13. type: String,
  14. enum: SidebarContentsType,
  15. default: SidebarContentsType.RECENT,
  16. },
  17. currentProductNavWidth: { type: Number },
  18. preferDrawerModeByUser: { type: Boolean, default: false },
  19. preferDrawerModeOnEditByUser: { type: Boolean, default: true },
  20. });
  21. export default getOrCreateModel<UserUISettingsDocument, UserUISettingsModel>('UserUISettings', schema);