✨ Zoom images
This commit is contained in:
		| @@ -4,16 +4,14 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | ||||
| var __getOwnPropNames = Object.getOwnPropertyNames; | ||||
| var __hasOwnProp = Object.prototype.hasOwnProperty; | ||||
| var __export = (target, all) => { | ||||
|   for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); | ||||
|   for (var name in all) | ||||
|     __defProp(target, name, { get: all[name], enumerable: true }); | ||||
| }; | ||||
| var __copyProps = (to, from, except, desc) => { | ||||
|   if ((from && typeof from === "object") || typeof from === "function") { | ||||
|   if (from && typeof from === "object" || typeof from === "function") { | ||||
|     for (let key of __getOwnPropNames(from)) | ||||
|       if (!__hasOwnProp.call(to, key) && key !== except) | ||||
|         __defProp(to, key, { | ||||
|           get: () => from[key], | ||||
|           enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable, | ||||
|         }); | ||||
|         __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | ||||
|   } | ||||
|   return to; | ||||
| }; | ||||
| @@ -22,7 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru | ||||
| // keystone.ts | ||||
| var keystone_exports = {}; | ||||
| __export(keystone_exports, { | ||||
|   default: () => keystone_default, | ||||
|   default: () => keystone_default | ||||
| }); | ||||
| module.exports = __toCommonJS(keystone_exports); | ||||
| var import_core8 = require("@keystone-6/core"); | ||||
| @@ -37,24 +35,24 @@ var allowUser = { | ||||
|   operation: { | ||||
|     create: isUser, | ||||
|     update: isUser, | ||||
|     delete: isUser, | ||||
|   }, | ||||
|     delete: isUser | ||||
|   } | ||||
| }; | ||||
| var isEditor = ({ session: session2 }) => session2?.data.isEditor || session2?.data.isAdmin; | ||||
| var allowEditor = { | ||||
|   operation: { | ||||
|     create: isEditor, | ||||
|     update: isEditor, | ||||
|     delete: isEditor, | ||||
|   }, | ||||
|     delete: isEditor | ||||
|   } | ||||
| }; | ||||
| var isAdmin = ({ session: session2 }) => session2?.data.isAdmin; | ||||
| var allowAdmin = { | ||||
|   operation: { | ||||
|     create: isAdmin, | ||||
|     update: isAdmin, | ||||
|     delete: isAdmin, | ||||
|   }, | ||||
|     delete: isAdmin | ||||
|   } | ||||
| }; | ||||
|  | ||||
| // schema/assets.ts | ||||
| @@ -66,9 +64,9 @@ var Image = (0, import_core.list)({ | ||||
|     caption: (0, import_fields.text)(), | ||||
|     image: (0, import_fields.image)({ storage: "localImages" }), | ||||
|     createdAt: (0, import_fields.timestamp)({ | ||||
|       defaultValue: { kind: "now" }, | ||||
|     }), | ||||
|   }, | ||||
|       defaultValue: { kind: "now" } | ||||
|     }) | ||||
|   } | ||||
| }); | ||||
| var Asset = (0, import_core.list)({ | ||||
|   access: allowEditor, | ||||
| @@ -79,17 +77,17 @@ var Asset = (0, import_core.list)({ | ||||
|       type: "enum", | ||||
|       options: [ | ||||
|         { label: "Video", value: "video" }, | ||||
|         { label: "Audio", value: "audio" }, | ||||
|         { label: "Audio", value: "audio" } | ||||
|       ], | ||||
|       defaultValue: "video", | ||||
|       db: { map: "media_type" }, | ||||
|       validation: { isRequired: true }, | ||||
|       ui: { displayMode: "select" }, | ||||
|       ui: { displayMode: "select" } | ||||
|     }), | ||||
|     createdAt: (0, import_fields.timestamp)({ | ||||
|       defaultValue: { kind: "now" }, | ||||
|     }), | ||||
|   }, | ||||
|       defaultValue: { kind: "now" } | ||||
|     }) | ||||
|   } | ||||
| }); | ||||
|  | ||||
| // schema/moments.ts | ||||
| @@ -108,10 +106,10 @@ var Moment = (0, import_core2.list)({ | ||||
|         [1, 1, 1], | ||||
|         [2, 1], | ||||
|         [1, 2], | ||||
|         [1, 2, 1], | ||||
|         [1, 2, 1] | ||||
|       ], | ||||
|       links: true, | ||||
|       dividers: true, | ||||
|       dividers: true | ||||
|     }), | ||||
|     author: (0, import_fields2.relationship)({ | ||||
|       ref: "User.moments", | ||||
| @@ -120,9 +118,9 @@ var Moment = (0, import_core2.list)({ | ||||
|         cardFields: ["name", "email"], | ||||
|         inlineEdit: { fields: ["name", "email"] }, | ||||
|         linkToItem: true, | ||||
|         inlineConnect: true, | ||||
|         inlineConnect: true | ||||
|       }, | ||||
|       many: false, | ||||
|       many: false | ||||
|     }), | ||||
|     categories: (0, import_fields2.relationship)({ | ||||
|       ref: "Category.moments", | ||||
| @@ -133,8 +131,8 @@ var Moment = (0, import_core2.list)({ | ||||
|         inlineEdit: { fields: ["name"] }, | ||||
|         linkToItem: true, | ||||
|         inlineConnect: true, | ||||
|         inlineCreate: { fields: ["name"] }, | ||||
|       }, | ||||
|         inlineCreate: { fields: ["name"] } | ||||
|       } | ||||
|     }), | ||||
|     tags: (0, import_fields2.relationship)({ | ||||
|       ref: "Tag.moments", | ||||
| @@ -145,13 +143,13 @@ var Moment = (0, import_core2.list)({ | ||||
|         inlineEdit: { fields: ["name"] }, | ||||
|         linkToItem: true, | ||||
|         inlineConnect: true, | ||||
|         inlineCreate: { fields: ["name"] }, | ||||
|       }, | ||||
|         inlineCreate: { fields: ["name"] } | ||||
|       } | ||||
|     }), | ||||
|     createdAt: (0, import_fields2.timestamp)({ | ||||
|       defaultValue: { kind: "now" }, | ||||
|     }), | ||||
|   }, | ||||
|       defaultValue: { kind: "now" } | ||||
|     }) | ||||
|   } | ||||
| }); | ||||
|  | ||||
| // schema/categories.ts | ||||
| @@ -162,30 +160,30 @@ var Category = (0, import_core3.list)({ | ||||
|   fields: { | ||||
|     slug: (0, import_fields3.text)({ | ||||
|       validation: { | ||||
|         isRequired: true, | ||||
|         isRequired: true | ||||
|       }, | ||||
|       isIndexed: "unique", | ||||
|       isIndexed: "unique" | ||||
|     }), | ||||
|     name: (0, import_fields3.text)(), | ||||
|     posts: (0, import_fields3.relationship)({ ref: "Post.categories", many: true }), | ||||
|     moments: (0, import_fields3.relationship)({ ref: "Moment.categories", many: true }), | ||||
|     events: (0, import_fields3.relationship)({ ref: "Event.categories", many: true }), | ||||
|   }, | ||||
|     events: (0, import_fields3.relationship)({ ref: "Event.categories", many: true }) | ||||
|   } | ||||
| }); | ||||
| var Tag = (0, import_core3.list)({ | ||||
|   access: allowEditor, | ||||
|   fields: { | ||||
|     slug: (0, import_fields3.text)({ | ||||
|       validation: { | ||||
|         isRequired: true, | ||||
|         isRequired: true | ||||
|       }, | ||||
|       isIndexed: "unique", | ||||
|       isIndexed: "unique" | ||||
|     }), | ||||
|     name: (0, import_fields3.text)(), | ||||
|     posts: (0, import_fields3.relationship)({ ref: "Post.tags", many: true }), | ||||
|     moments: (0, import_fields3.relationship)({ ref: "Moment.tags", many: true }), | ||||
|     events: (0, import_fields3.relationship)({ ref: "Event.tags", many: true }), | ||||
|   }, | ||||
|     events: (0, import_fields3.relationship)({ ref: "Event.tags", many: true }) | ||||
|   } | ||||
| }); | ||||
|  | ||||
| // schema/projects.ts | ||||
| @@ -196,10 +194,11 @@ var Project = (0, import_core4.list)({ | ||||
|     ...allowAdmin, | ||||
|     filter: { | ||||
|       query: ({ session: session2 }) => { | ||||
|         if (session2?.data.isEditor || session2?.data.isAdmin) return true; | ||||
|         if (session2?.data.isEditor || session2?.data.isAdmin) | ||||
|           return true; | ||||
|         return { isPublished: { equals: true } }; | ||||
|       }, | ||||
|     }, | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   fields: { | ||||
|     icon: (0, import_fields4.relationship)({ ref: "Image" }), | ||||
| @@ -213,18 +212,18 @@ var Project = (0, import_core4.list)({ | ||||
|         { label: "Pending", value: "pending" }, | ||||
|         { label: "Constructing", value: "constructing" }, | ||||
|         { label: "Published", value: "published" }, | ||||
|         { label: "Abandoned", value: "abandoned" }, | ||||
|         { label: "Abandoned", value: "abandoned" } | ||||
|       ], | ||||
|       defaultValue: "pending", | ||||
|       db: { map: "project_status" }, | ||||
|       validation: { isRequired: true }, | ||||
|       ui: { displayMode: "select" }, | ||||
|       ui: { displayMode: "select" } | ||||
|     }), | ||||
|     post: (0, import_fields4.relationship)({ ref: "Post" }), | ||||
|     createdAt: (0, import_fields4.timestamp)({ | ||||
|       defaultValue: { kind: "now" }, | ||||
|     }), | ||||
|   }, | ||||
|       defaultValue: { kind: "now" } | ||||
|     }) | ||||
|   } | ||||
| }); | ||||
|  | ||||
| // schema/posts.ts | ||||
| @@ -236,17 +235,18 @@ var Post = (0, import_core5.list)({ | ||||
|     ...allowEditor, | ||||
|     filter: { | ||||
|       query: ({ session: session2 }) => { | ||||
|         if (session2?.data.isEditor || session2?.data.isAdmin) return true; | ||||
|         if (session2?.data.isEditor || session2?.data.isAdmin) | ||||
|           return true; | ||||
|         return { isPublished: { equals: true } }; | ||||
|       }, | ||||
|     }, | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   fields: { | ||||
|     slug: (0, import_fields5.text)({ | ||||
|       validation: { | ||||
|         isRequired: true, | ||||
|         isRequired: true | ||||
|       }, | ||||
|       isIndexed: "unique", | ||||
|       isIndexed: "unique" | ||||
|     }), | ||||
|     title: (0, import_fields5.text)({ validation: { isRequired: true } }), | ||||
|     cover: (0, import_fields5.relationship)({ ref: "Image" }), | ||||
| @@ -260,21 +260,21 @@ var Post = (0, import_core5.list)({ | ||||
|         [1, 1, 1], | ||||
|         [2, 1], | ||||
|         [1, 2], | ||||
|         [1, 2, 1], | ||||
|         [1, 2, 1] | ||||
|       ], | ||||
|       links: true, | ||||
|       dividers: true, | ||||
|       dividers: true | ||||
|     }), | ||||
|     type: (0, import_fields5.select)({ | ||||
|       type: "enum", | ||||
|       options: [ | ||||
|         { label: "Article", value: "article" }, | ||||
|         { label: "Podcast", value: "podcast" }, | ||||
|         { label: "Podcast", value: "podcast" } | ||||
|       ], | ||||
|       defaultValue: "article", | ||||
|       db: { map: "post_type" }, | ||||
|       validation: { isRequired: true }, | ||||
|       ui: { displayMode: "select" }, | ||||
|       ui: { displayMode: "select" } | ||||
|     }), | ||||
|     isPublished: (0, import_fields5.checkbox)(), | ||||
|     author: (0, import_fields5.relationship)({ | ||||
| @@ -284,9 +284,9 @@ var Post = (0, import_core5.list)({ | ||||
|         cardFields: ["name", "email"], | ||||
|         inlineEdit: { fields: ["name", "email"] }, | ||||
|         linkToItem: true, | ||||
|         inlineConnect: true, | ||||
|         inlineConnect: true | ||||
|       }, | ||||
|       many: false, | ||||
|       many: false | ||||
|     }), | ||||
|     categories: (0, import_fields5.relationship)({ | ||||
|       ref: "Category.posts", | ||||
| @@ -297,8 +297,8 @@ var Post = (0, import_core5.list)({ | ||||
|         inlineEdit: { fields: ["name"] }, | ||||
|         linkToItem: true, | ||||
|         inlineConnect: true, | ||||
|         inlineCreate: { fields: ["name"] }, | ||||
|       }, | ||||
|         inlineCreate: { fields: ["name"] } | ||||
|       } | ||||
|     }), | ||||
|     tags: (0, import_fields5.relationship)({ | ||||
|       ref: "Tag.posts", | ||||
| @@ -309,13 +309,13 @@ var Post = (0, import_core5.list)({ | ||||
|         inlineEdit: { fields: ["name"] }, | ||||
|         linkToItem: true, | ||||
|         inlineConnect: true, | ||||
|         inlineCreate: { fields: ["name"] }, | ||||
|       }, | ||||
|         inlineCreate: { fields: ["name"] } | ||||
|       } | ||||
|     }), | ||||
|     createdAt: (0, import_fields5.timestamp)({ | ||||
|       defaultValue: { kind: "now" }, | ||||
|     }), | ||||
|   }, | ||||
|       defaultValue: { kind: "now" } | ||||
|     }) | ||||
|   } | ||||
| }); | ||||
|  | ||||
| // schema/events.ts | ||||
| @@ -327,17 +327,18 @@ var Event = (0, import_core6.list)({ | ||||
|     ...allowEditor, | ||||
|     filter: { | ||||
|       query: ({ session: session2 }) => { | ||||
|         if (session2?.data.isEditor || session2?.data.isAdmin) return true; | ||||
|         if (session2?.data.isEditor || session2?.data.isAdmin) | ||||
|           return true; | ||||
|         return { isPublished: { equals: true } }; | ||||
|       }, | ||||
|     }, | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   fields: { | ||||
|     slug: (0, import_fields6.text)({ | ||||
|       validation: { | ||||
|         isRequired: true, | ||||
|         isRequired: true | ||||
|       }, | ||||
|       isIndexed: "unique", | ||||
|       isIndexed: "unique" | ||||
|     }), | ||||
|     title: (0, import_fields6.text)({ validation: { isRequired: true } }), | ||||
|     description: (0, import_fields6.text)(), | ||||
| @@ -348,10 +349,10 @@ var Event = (0, import_core6.list)({ | ||||
|         [1, 1, 1], | ||||
|         [2, 1], | ||||
|         [1, 2], | ||||
|         [1, 2, 1], | ||||
|         [1, 2, 1] | ||||
|       ], | ||||
|       links: true, | ||||
|       dividers: true, | ||||
|       dividers: true | ||||
|     }), | ||||
|     isPublished: (0, import_fields6.checkbox)(), | ||||
|     isHistory: (0, import_fields6.checkbox)(), | ||||
| @@ -362,9 +363,9 @@ var Event = (0, import_core6.list)({ | ||||
|         cardFields: ["name", "email"], | ||||
|         inlineEdit: { fields: ["name", "email"] }, | ||||
|         linkToItem: true, | ||||
|         inlineConnect: true, | ||||
|         inlineConnect: true | ||||
|       }, | ||||
|       many: false, | ||||
|       many: false | ||||
|     }), | ||||
|     categories: (0, import_fields6.relationship)({ | ||||
|       ref: "Category.events", | ||||
| @@ -375,8 +376,8 @@ var Event = (0, import_core6.list)({ | ||||
|         inlineEdit: { fields: ["name"] }, | ||||
|         linkToItem: true, | ||||
|         inlineConnect: true, | ||||
|         inlineCreate: { fields: ["name"] }, | ||||
|       }, | ||||
|         inlineCreate: { fields: ["name"] } | ||||
|       } | ||||
|     }), | ||||
|     tags: (0, import_fields6.relationship)({ | ||||
|       ref: "Tag.events", | ||||
| @@ -387,13 +388,13 @@ var Event = (0, import_core6.list)({ | ||||
|         inlineEdit: { fields: ["name"] }, | ||||
|         linkToItem: true, | ||||
|         inlineConnect: true, | ||||
|         inlineCreate: { fields: ["name"] }, | ||||
|       }, | ||||
|         inlineCreate: { fields: ["name"] } | ||||
|       } | ||||
|     }), | ||||
|     createdAt: (0, import_fields6.timestamp)({ | ||||
|       defaultValue: { kind: "now" }, | ||||
|     }), | ||||
|   }, | ||||
|       defaultValue: { kind: "now" } | ||||
|     }) | ||||
|   } | ||||
| }); | ||||
|  | ||||
| // schema/index.ts | ||||
| @@ -404,7 +405,7 @@ var lists = { | ||||
|       name: (0, import_fields7.text)({ validation: { isRequired: true } }), | ||||
|       email: (0, import_fields7.text)({ | ||||
|         validation: { isRequired: true }, | ||||
|         isIndexed: "unique", | ||||
|         isIndexed: "unique" | ||||
|       }), | ||||
|       password: (0, import_fields7.password)({ validation: { isRequired: true } }), | ||||
|       posts: (0, import_fields7.relationship)({ ref: "Post.author", many: true }), | ||||
| @@ -413,9 +414,9 @@ var lists = { | ||||
|       isAdmin: (0, import_fields7.checkbox)(), | ||||
|       isEditor: (0, import_fields7.checkbox)(), | ||||
|       createdAt: (0, import_fields7.timestamp)({ | ||||
|         defaultValue: { kind: "now" }, | ||||
|       }), | ||||
|     }, | ||||
|         defaultValue: { kind: "now" } | ||||
|       }) | ||||
|     } | ||||
|   }), | ||||
|   Image, | ||||
|   Asset, | ||||
| @@ -424,7 +425,7 @@ var lists = { | ||||
|   Project, | ||||
|   Event, | ||||
|   Category, | ||||
|   Tag, | ||||
|   Tag | ||||
| }; | ||||
|  | ||||
| // auth.ts | ||||
| @@ -441,13 +442,13 @@ var { withAuth } = (0, import_auth.createAuth)({ | ||||
|   sessionData: "id name createdAt isAdmin isEditor", | ||||
|   secretField: "password", | ||||
|   initFirstItem: { | ||||
|     fields: ["name", "email", "password", "isAdmin"], | ||||
|   }, | ||||
|     fields: ["name", "email", "password", "isAdmin"] | ||||
|   } | ||||
| }); | ||||
| var sessionMaxAge = 60 * 60 * 24 * 30; | ||||
| var session = (0, import_session.statelessSessions)({ | ||||
|   maxAge: sessionMaxAge, | ||||
|   secret: sessionSecret, | ||||
|   secret: sessionSecret | ||||
| }); | ||||
|  | ||||
| // keystone.ts | ||||
| @@ -457,17 +458,17 @@ var databaseProvider = process.env.DATABASE_PROVIDER ?? "postgresql"; | ||||
| var keystone_default = withAuth( | ||||
|   (0, import_core8.config)({ | ||||
|     ui: { | ||||
|       basePath: "/cms", | ||||
|       basePath: "/cms" | ||||
|     }, | ||||
|     db: { | ||||
|       provider: databaseProvider, | ||||
|       url: databaseUrl, | ||||
|       url: databaseUrl | ||||
|     }, | ||||
|     server: { | ||||
|       cors: { | ||||
|         origin: "*", | ||||
|         methods: "GET,HEAD,PUT,PATCH,POST,DELETE", | ||||
|       }, | ||||
|         methods: "GET,HEAD,PUT,PATCH,POST,DELETE" | ||||
|       } | ||||
|     }, | ||||
|     storage: { | ||||
|       localImages: { | ||||
| @@ -475,13 +476,13 @@ var keystone_default = withAuth( | ||||
|         type: "image", | ||||
|         generateUrl: (path) => `${baseUrl}/images${path}`, | ||||
|         serverRoute: { | ||||
|           path: "/images", | ||||
|           path: "/images" | ||||
|         }, | ||||
|         storagePath: "public/images", | ||||
|       }, | ||||
|         storagePath: "public/images" | ||||
|       } | ||||
|     }, | ||||
|     lists, | ||||
|     session, | ||||
|   }), | ||||
|     session | ||||
|   }) | ||||
| ); | ||||
| //# sourceMappingURL=config.js.map | ||||
|   | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -6,29 +6,11 @@ type User { | ||||
|   name: String | ||||
|   email: String | ||||
|   password: PasswordState | ||||
|   posts( | ||||
|     where: PostWhereInput! = {} | ||||
|     orderBy: [PostOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: PostWhereUniqueInput | ||||
|   ): [Post!] | ||||
|   posts(where: PostWhereInput! = {}, orderBy: [PostOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: PostWhereUniqueInput): [Post!] | ||||
|   postsCount(where: PostWhereInput! = {}): Int | ||||
|   moments( | ||||
|     where: MomentWhereInput! = {} | ||||
|     orderBy: [MomentOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: MomentWhereUniqueInput | ||||
|   ): [Moment!] | ||||
|   moments(where: MomentWhereInput! = {}, orderBy: [MomentOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: MomentWhereUniqueInput): [Moment!] | ||||
|   momentsCount(where: MomentWhereInput! = {}): Int | ||||
|   events( | ||||
|     where: EventWhereInput! = {} | ||||
|     orderBy: [EventOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: EventWhereUniqueInput | ||||
|   ): [Event!] | ||||
|   events(where: EventWhereInput! = {}, orderBy: [EventOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: EventWhereUniqueInput): [Event!] | ||||
|   eventsCount(where: EventWhereInput! = {}): Int | ||||
|   isAdmin: Boolean | ||||
|   isEditor: Boolean | ||||
| @@ -271,9 +253,7 @@ input ImageFieldInput { | ||||
|   upload: Upload! | ||||
| } | ||||
|  | ||||
| """ | ||||
| The `Upload` scalar type represents a file upload. | ||||
| """ | ||||
| """The `Upload` scalar type represents a file upload.""" | ||||
| scalar Upload | ||||
|  | ||||
| input ImageUpdateArgs { | ||||
| @@ -355,41 +335,17 @@ type Post { | ||||
|   title: String | ||||
|   cover: Image | ||||
|   description: String | ||||
|   assets( | ||||
|     where: AssetWhereInput! = {} | ||||
|     orderBy: [AssetOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: AssetWhereUniqueInput | ||||
|   ): [Asset!] | ||||
|   assets(where: AssetWhereInput! = {}, orderBy: [AssetOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: AssetWhereUniqueInput): [Asset!] | ||||
|   assetsCount(where: AssetWhereInput! = {}): Int | ||||
|   images( | ||||
|     where: ImageWhereInput! = {} | ||||
|     orderBy: [ImageOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: ImageWhereUniqueInput | ||||
|   ): [Image!] | ||||
|   images(where: ImageWhereInput! = {}, orderBy: [ImageOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: ImageWhereUniqueInput): [Image!] | ||||
|   imagesCount(where: ImageWhereInput! = {}): Int | ||||
|   content: Post_content_Document | ||||
|   type: PostTypeType | ||||
|   isPublished: Boolean | ||||
|   author: User | ||||
|   categories( | ||||
|     where: CategoryWhereInput! = {} | ||||
|     orderBy: [CategoryOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: CategoryWhereUniqueInput | ||||
|   ): [Category!] | ||||
|   categories(where: CategoryWhereInput! = {}, orderBy: [CategoryOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: CategoryWhereUniqueInput): [Category!] | ||||
|   categoriesCount(where: CategoryWhereInput! = {}): Int | ||||
|   tags( | ||||
|     where: TagWhereInput! = {} | ||||
|     orderBy: [TagOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: TagWhereUniqueInput | ||||
|   ): [Tag!] | ||||
|   tags(where: TagWhereInput! = {}, orderBy: [TagOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: TagWhereUniqueInput): [Tag!] | ||||
|   tagsCount(where: TagWhereInput! = {}): Int | ||||
|   createdAt: DateTime | ||||
| } | ||||
| @@ -578,31 +534,13 @@ input TagRelateToManyForCreateInput { | ||||
| type Moment { | ||||
|   id: ID! | ||||
|   title: String | ||||
|   images( | ||||
|     where: ImageWhereInput! = {} | ||||
|     orderBy: [ImageOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: ImageWhereUniqueInput | ||||
|   ): [Image!] | ||||
|   images(where: ImageWhereInput! = {}, orderBy: [ImageOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: ImageWhereUniqueInput): [Image!] | ||||
|   imagesCount(where: ImageWhereInput! = {}): Int | ||||
|   content: Moment_content_Document | ||||
|   author: User | ||||
|   categories( | ||||
|     where: CategoryWhereInput! = {} | ||||
|     orderBy: [CategoryOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: CategoryWhereUniqueInput | ||||
|   ): [Category!] | ||||
|   categories(where: CategoryWhereInput! = {}, orderBy: [CategoryOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: CategoryWhereUniqueInput): [Category!] | ||||
|   categoriesCount(where: CategoryWhereInput! = {}): Int | ||||
|   tags( | ||||
|     where: TagWhereInput! = {} | ||||
|     orderBy: [TagOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: TagWhereUniqueInput | ||||
|   ): [Tag!] | ||||
|   tags(where: TagWhereInput! = {}, orderBy: [TagOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: TagWhereUniqueInput): [Tag!] | ||||
|   tagsCount(where: TagWhereInput! = {}): Int | ||||
|   createdAt: DateTime | ||||
| } | ||||
| @@ -761,21 +699,9 @@ type Event { | ||||
|   isPublished: Boolean | ||||
|   isHistory: Boolean | ||||
|   author: User | ||||
|   categories( | ||||
|     where: CategoryWhereInput! = {} | ||||
|     orderBy: [CategoryOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: CategoryWhereUniqueInput | ||||
|   ): [Category!] | ||||
|   categories(where: CategoryWhereInput! = {}, orderBy: [CategoryOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: CategoryWhereUniqueInput): [Category!] | ||||
|   categoriesCount(where: CategoryWhereInput! = {}): Int | ||||
|   tags( | ||||
|     where: TagWhereInput! = {} | ||||
|     orderBy: [TagOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: TagWhereUniqueInput | ||||
|   ): [Tag!] | ||||
|   tags(where: TagWhereInput! = {}, orderBy: [TagOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: TagWhereUniqueInput): [Tag!] | ||||
|   tagsCount(where: TagWhereInput! = {}): Int | ||||
|   createdAt: DateTime | ||||
| } | ||||
| @@ -850,29 +776,11 @@ type Category { | ||||
|   id: ID! | ||||
|   slug: String | ||||
|   name: String | ||||
|   posts( | ||||
|     where: PostWhereInput! = {} | ||||
|     orderBy: [PostOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: PostWhereUniqueInput | ||||
|   ): [Post!] | ||||
|   posts(where: PostWhereInput! = {}, orderBy: [PostOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: PostWhereUniqueInput): [Post!] | ||||
|   postsCount(where: PostWhereInput! = {}): Int | ||||
|   moments( | ||||
|     where: MomentWhereInput! = {} | ||||
|     orderBy: [MomentOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: MomentWhereUniqueInput | ||||
|   ): [Moment!] | ||||
|   moments(where: MomentWhereInput! = {}, orderBy: [MomentOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: MomentWhereUniqueInput): [Moment!] | ||||
|   momentsCount(where: MomentWhereInput! = {}): Int | ||||
|   events( | ||||
|     where: EventWhereInput! = {} | ||||
|     orderBy: [EventOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: EventWhereUniqueInput | ||||
|   ): [Event!] | ||||
|   events(where: EventWhereInput! = {}, orderBy: [EventOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: EventWhereUniqueInput): [Event!] | ||||
|   eventsCount(where: EventWhereInput! = {}): Int | ||||
| } | ||||
|  | ||||
| @@ -924,29 +832,11 @@ type Tag { | ||||
|   id: ID! | ||||
|   slug: String | ||||
|   name: String | ||||
|   posts( | ||||
|     where: PostWhereInput! = {} | ||||
|     orderBy: [PostOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: PostWhereUniqueInput | ||||
|   ): [Post!] | ||||
|   posts(where: PostWhereInput! = {}, orderBy: [PostOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: PostWhereUniqueInput): [Post!] | ||||
|   postsCount(where: PostWhereInput! = {}): Int | ||||
|   moments( | ||||
|     where: MomentWhereInput! = {} | ||||
|     orderBy: [MomentOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: MomentWhereUniqueInput | ||||
|   ): [Moment!] | ||||
|   moments(where: MomentWhereInput! = {}, orderBy: [MomentOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: MomentWhereUniqueInput): [Moment!] | ||||
|   momentsCount(where: MomentWhereInput! = {}): Int | ||||
|   events( | ||||
|     where: EventWhereInput! = {} | ||||
|     orderBy: [EventOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: EventWhereUniqueInput | ||||
|   ): [Event!] | ||||
|   events(where: EventWhereInput! = {}, orderBy: [EventOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: EventWhereUniqueInput): [Event!] | ||||
|   eventsCount(where: EventWhereInput! = {}): Int | ||||
| } | ||||
|  | ||||
| @@ -1059,9 +949,7 @@ type Mutation { | ||||
|   createInitialUser(data: CreateInitialUserInput!): UserAuthenticationWithPasswordSuccess! | ||||
| } | ||||
|  | ||||
| union UserAuthenticationWithPasswordResult = | ||||
|   | UserAuthenticationWithPasswordSuccess | ||||
|   | UserAuthenticationWithPasswordFailure | ||||
| union UserAuthenticationWithPasswordResult = UserAuthenticationWithPasswordSuccess | UserAuthenticationWithPasswordFailure | ||||
|  | ||||
| type UserAuthenticationWithPasswordSuccess { | ||||
|   sessionToken: String! | ||||
| @@ -1080,85 +968,31 @@ input CreateInitialUserInput { | ||||
| } | ||||
|  | ||||
| type Query { | ||||
|   users( | ||||
|     where: UserWhereInput! = {} | ||||
|     orderBy: [UserOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: UserWhereUniqueInput | ||||
|   ): [User!] | ||||
|   users(where: UserWhereInput! = {}, orderBy: [UserOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: UserWhereUniqueInput): [User!] | ||||
|   user(where: UserWhereUniqueInput!): User | ||||
|   usersCount(where: UserWhereInput! = {}): Int | ||||
|   images( | ||||
|     where: ImageWhereInput! = {} | ||||
|     orderBy: [ImageOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: ImageWhereUniqueInput | ||||
|   ): [Image!] | ||||
|   images(where: ImageWhereInput! = {}, orderBy: [ImageOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: ImageWhereUniqueInput): [Image!] | ||||
|   image(where: ImageWhereUniqueInput!): Image | ||||
|   imagesCount(where: ImageWhereInput! = {}): Int | ||||
|   assets( | ||||
|     where: AssetWhereInput! = {} | ||||
|     orderBy: [AssetOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: AssetWhereUniqueInput | ||||
|   ): [Asset!] | ||||
|   assets(where: AssetWhereInput! = {}, orderBy: [AssetOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: AssetWhereUniqueInput): [Asset!] | ||||
|   asset(where: AssetWhereUniqueInput!): Asset | ||||
|   assetsCount(where: AssetWhereInput! = {}): Int | ||||
|   posts( | ||||
|     where: PostWhereInput! = {} | ||||
|     orderBy: [PostOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: PostWhereUniqueInput | ||||
|   ): [Post!] | ||||
|   posts(where: PostWhereInput! = {}, orderBy: [PostOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: PostWhereUniqueInput): [Post!] | ||||
|   post(where: PostWhereUniqueInput!): Post | ||||
|   postsCount(where: PostWhereInput! = {}): Int | ||||
|   moments( | ||||
|     where: MomentWhereInput! = {} | ||||
|     orderBy: [MomentOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: MomentWhereUniqueInput | ||||
|   ): [Moment!] | ||||
|   moments(where: MomentWhereInput! = {}, orderBy: [MomentOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: MomentWhereUniqueInput): [Moment!] | ||||
|   moment(where: MomentWhereUniqueInput!): Moment | ||||
|   momentsCount(where: MomentWhereInput! = {}): Int | ||||
|   projects( | ||||
|     where: ProjectWhereInput! = {} | ||||
|     orderBy: [ProjectOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: ProjectWhereUniqueInput | ||||
|   ): [Project!] | ||||
|   projects(where: ProjectWhereInput! = {}, orderBy: [ProjectOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: ProjectWhereUniqueInput): [Project!] | ||||
|   project(where: ProjectWhereUniqueInput!): Project | ||||
|   projectsCount(where: ProjectWhereInput! = {}): Int | ||||
|   events( | ||||
|     where: EventWhereInput! = {} | ||||
|     orderBy: [EventOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: EventWhereUniqueInput | ||||
|   ): [Event!] | ||||
|   events(where: EventWhereInput! = {}, orderBy: [EventOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: EventWhereUniqueInput): [Event!] | ||||
|   event(where: EventWhereUniqueInput!): Event | ||||
|   eventsCount(where: EventWhereInput! = {}): Int | ||||
|   categories( | ||||
|     where: CategoryWhereInput! = {} | ||||
|     orderBy: [CategoryOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: CategoryWhereUniqueInput | ||||
|   ): [Category!] | ||||
|   categories(where: CategoryWhereInput! = {}, orderBy: [CategoryOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: CategoryWhereUniqueInput): [Category!] | ||||
|   category(where: CategoryWhereUniqueInput!): Category | ||||
|   categoriesCount(where: CategoryWhereInput! = {}): Int | ||||
|   tags( | ||||
|     where: TagWhereInput! = {} | ||||
|     orderBy: [TagOrderByInput!]! = [] | ||||
|     take: Int | ||||
|     skip: Int! = 0 | ||||
|     cursor: TagWhereUniqueInput | ||||
|   ): [Tag!] | ||||
|   tags(where: TagWhereInput! = {}, orderBy: [TagOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: TagWhereUniqueInput): [Tag!] | ||||
|   tag(where: TagWhereUniqueInput!): Tag | ||||
|   tagsCount(where: TagWhereInput! = {}): Int | ||||
|   keystone: KeystoneMeta! | ||||
|   | ||||
| @@ -22,6 +22,7 @@ | ||||
|     "aplayer": "^1.10.1", | ||||
|     "artplayer": "^5.1.1", | ||||
|     "astro": "^4.2.1", | ||||
|     "medium-zoom": "^1.1.0", | ||||
|     "react": "^18.2.0", | ||||
|     "react-dom": "^18.2.0", | ||||
|     "sass": "^1.70.0", | ||||
|   | ||||
| @@ -13,17 +13,14 @@ const { title } = Astro.props; | ||||
|     <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> | ||||
|     <meta name="viewport" content="width=device-width" /> | ||||
|     <meta name="generator" content={Astro.generator} /> | ||||
|     {title && (<title>山羊寒舍 | {title}</title>)} | ||||
|     {!title && (<title>山羊寒舍</title>)} | ||||
|     {title && <title>山羊寒舍 | {title}</title>} | ||||
|     {!title && <title>山羊寒舍</title>} | ||||
|  | ||||
|     <script is:inline> | ||||
|       if (localStorage.getItem("theme") === null) { | ||||
|         document.documentElement.setAttribute("data-theme", "light"); | ||||
|       } else { | ||||
|         document.documentElement.setAttribute( | ||||
|           "data-theme", | ||||
|           localStorage.getItem("theme") | ||||
|         ); | ||||
|         document.documentElement.setAttribute("data-theme", localStorage.getItem("theme")); | ||||
|       } | ||||
|     </script> | ||||
|  | ||||
|   | ||||
| @@ -48,14 +48,14 @@ const { post } = ( | ||||
| }`, | ||||
|     { | ||||
|       where: { slug }, | ||||
|     } | ||||
|     }, | ||||
|   ) | ||||
| ).data; | ||||
| --- | ||||
|  | ||||
| <PageLayout title={post.title}> | ||||
|   <div class="wrapper"> | ||||
|     <div class="card w-full shadow-xl"> | ||||
|     <div class="card w-full shadow-xl post"> | ||||
|       { | ||||
|         post.cover && ( | ||||
|           <figure> | ||||
| @@ -101,10 +101,7 @@ const { post } = ( | ||||
|               <div class="flex gap-1"> | ||||
|                 { | ||||
|                   post.categories?.map((category: any) => ( | ||||
|                     <a | ||||
|                       href={`/categories/${category.slug}`} | ||||
|                       class="link link-primary" | ||||
|                     > | ||||
|                     <a href={`/categories/${category.slug}`} class="link link-primary"> | ||||
|                       {category.name} | ||||
|                     </a> | ||||
|                   )) | ||||
| @@ -134,6 +131,13 @@ const { post } = ( | ||||
|   </div> | ||||
| </PageLayout> | ||||
|  | ||||
| <script> | ||||
|   import mediumZoom from "medium-zoom"; | ||||
|   mediumZoom(document.querySelectorAll(".post img"), { | ||||
|     background: "var(--fallback-b1,oklch(var(--b1)/1))", | ||||
|   }); | ||||
| </script> | ||||
|  | ||||
| <style> | ||||
|   .wrapper { | ||||
|     display: grid; | ||||
|   | ||||
| @@ -2409,6 +2409,11 @@ mdast-util-to-string@^4.0.0: | ||||
|   dependencies: | ||||
|     "@types/mdast" "^4.0.0" | ||||
|  | ||||
| medium-zoom@^1.1.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.1.0.tgz#6efb6bbda861a02064ee71a2617a8dc4381ecc71" | ||||
|   integrity sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ== | ||||
|  | ||||
| merge-stream@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user