diff --git a/gatsby-node.ts b/gatsby-node.ts index 22eeae8..558d62e 100644 --- a/gatsby-node.ts +++ b/gatsby-node.ts @@ -139,6 +139,7 @@ function transformMetaToNodeData( ISO: metaData.ISO, DateTimeOriginal: metaData.DateTimeOriginal, CreateDate: metaData.CreateDate, + ModifyDate: metaData.ModifyDate, ShutterSpeedValue: metaData.ShutterSpeedValue, ApertureValue: metaData.ApertureValue, FocalLength: metaData.FocalLength, diff --git a/src/components/MasonryGallery.tsx b/src/components/MasonryGallery.tsx index aee08f0..af5cad9 100644 --- a/src/components/MasonryGallery.tsx +++ b/src/components/MasonryGallery.tsx @@ -18,7 +18,7 @@ interface Row { } interface MasonryGalleryProps { - images: GalleryImage[]; + images: readonly GalleryImage[]; aspectsByBreakpoint: { [breakpoint: string]: number; }; diff --git a/src/gatsby-types.d.ts b/src/gatsby-types.d.ts index 70ff0fc..e99642b 100644 --- a/src/gatsby-types.d.ts +++ b/src/gatsby-types.d.ts @@ -617,6 +617,7 @@ type FileFieldsImageMetaMeta = { readonly Location: Maybe; readonly Make: Maybe; readonly Model: Maybe; + readonly ModifyDate: Maybe; readonly ObjectName: Maybe; readonly Rating: Maybe; readonly ShutterSpeedValue: Maybe; @@ -639,6 +640,14 @@ type FileFieldsImageMetaMeta_DateTimeOriginalArgs = { locale: InputMaybe; }; + +type FileFieldsImageMetaMeta_ModifyDateArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + type FileFieldsImageMetaMetaFieldSelector = { readonly ApertureValue: InputMaybe; readonly Caption: InputMaybe; @@ -654,6 +663,7 @@ type FileFieldsImageMetaMetaFieldSelector = { readonly Location: InputMaybe; readonly Make: InputMaybe; readonly Model: InputMaybe; + readonly ModifyDate: InputMaybe; readonly ObjectName: InputMaybe; readonly Rating: InputMaybe; readonly ShutterSpeedValue: InputMaybe; @@ -675,6 +685,7 @@ type FileFieldsImageMetaMetaFilterInput = { readonly Location: InputMaybe; readonly Make: InputMaybe; readonly Model: InputMaybe; + readonly ModifyDate: InputMaybe; readonly ObjectName: InputMaybe; readonly Rating: InputMaybe; readonly ShutterSpeedValue: InputMaybe; @@ -696,6 +707,7 @@ type FileFieldsImageMetaMetaSortInput = { readonly Location: InputMaybe; readonly Make: InputMaybe; readonly Model: InputMaybe; + readonly ModifyDate: InputMaybe; readonly ObjectName: InputMaybe; readonly Rating: InputMaybe; readonly ShutterSpeedValue: InputMaybe; @@ -2547,10 +2559,12 @@ type GalleryImageQueryVariables = Exact<{ type GalleryImageQuery = { readonly file: { readonly base: string, readonly publicURL: string | null, readonly childImageSharp: { readonly gatsbyImageData: import('gatsby-plugin-image').IGatsbyImageData, readonly fluid: { readonly aspectRatio: number } | null } | null, readonly fields: { readonly imageMeta: { readonly dateTaken: string | null, readonly meta: { readonly Make: string | null, readonly Model: string | null, readonly ExposureTime: number | null, readonly FNumber: number | null, readonly ISO: number | null, readonly DateTimeOriginal: string | null, readonly CreateDate: string | null, readonly ShutterSpeedValue: number | null, readonly ApertureValue: number | null, readonly FocalLength: number | null, readonly LensModel: string | null, readonly ObjectName: string | null, readonly Caption: string | null, readonly Location: string | null, readonly City: string | null, readonly State: string | null } | null, readonly vibrant: { readonly DarkMuted: ReadonlyArray | null, readonly DarkVibrant: ReadonlyArray | null, readonly LightMuted: ReadonlyArray | null, readonly LightVibrant: ReadonlyArray | null, readonly Vibrant: ReadonlyArray | null, readonly Muted: ReadonlyArray | null } | null } | null } | null } | null }; +type GalleryImageFileFragment = { readonly nodes: ReadonlyArray<{ readonly relativePath: string, readonly base: string, readonly childImageSharp: { readonly gatsbyImageData: import('gatsby-plugin-image').IGatsbyImageData, readonly fluid: { readonly aspectRatio: number } | null } | null, readonly fields: { readonly imageMeta: { readonly vibrantHue: number | null, readonly dominantHue: ReadonlyArray | null, readonly dateTaken: string | null, readonly meta: { readonly Keywords: ReadonlyArray | null, readonly Rating: number | null, readonly ObjectName: string | null, readonly CreateDate: string | null, readonly ModifyDate: string | null } | null, readonly vibrant: { readonly DarkMuted: ReadonlyArray | null, readonly DarkVibrant: ReadonlyArray | null, readonly LightMuted: ReadonlyArray | null, readonly LightVibrant: ReadonlyArray | null, readonly Vibrant: ReadonlyArray | null, readonly Muted: ReadonlyArray | null } | null } | null } | null }> }; + type GalleryPageQueryQueryVariables = Exact<{ [key: string]: never; }>; -type GalleryPageQueryQuery = { readonly allFile: { readonly nodes: ReadonlyArray<{ readonly relativePath: string, readonly base: string, readonly childImageSharp: { readonly gatsbyImageData: import('gatsby-plugin-image').IGatsbyImageData, readonly fluid: { readonly aspectRatio: number } | null } | null, readonly fields: { readonly imageMeta: { readonly vibrantHue: number | null, readonly dominantHue: ReadonlyArray | null, readonly dateTaken: string | null, readonly meta: { readonly Keywords: ReadonlyArray | null, readonly Rating: number | null, readonly ObjectName: string | null } | null, readonly vibrant: { readonly DarkMuted: ReadonlyArray | null, readonly DarkVibrant: ReadonlyArray | null, readonly LightMuted: ReadonlyArray | null, readonly LightVibrant: ReadonlyArray | null, readonly Vibrant: ReadonlyArray | null, readonly Muted: ReadonlyArray | null } | null } | null } | null }> } }; +type GalleryPageQueryQuery = { readonly recents: { readonly nodes: ReadonlyArray<{ readonly relativePath: string, readonly base: string, readonly childImageSharp: { readonly gatsbyImageData: import('gatsby-plugin-image').IGatsbyImageData, readonly fluid: { readonly aspectRatio: number } | null } | null, readonly fields: { readonly imageMeta: { readonly vibrantHue: number | null, readonly dominantHue: ReadonlyArray | null, readonly dateTaken: string | null, readonly meta: { readonly Keywords: ReadonlyArray | null, readonly Rating: number | null, readonly ObjectName: string | null, readonly CreateDate: string | null, readonly ModifyDate: string | null } | null, readonly vibrant: { readonly DarkMuted: ReadonlyArray | null, readonly DarkVibrant: ReadonlyArray | null, readonly LightMuted: ReadonlyArray | null, readonly LightVibrant: ReadonlyArray | null, readonly Vibrant: ReadonlyArray | null, readonly Muted: ReadonlyArray | null } | null } | null } | null }> }, readonly all: { readonly nodes: ReadonlyArray<{ readonly relativePath: string, readonly base: string, readonly childImageSharp: { readonly gatsbyImageData: import('gatsby-plugin-image').IGatsbyImageData, readonly fluid: { readonly aspectRatio: number } | null } | null, readonly fields: { readonly imageMeta: { readonly vibrantHue: number | null, readonly dominantHue: ReadonlyArray | null, readonly dateTaken: string | null, readonly meta: { readonly Keywords: ReadonlyArray | null, readonly Rating: number | null, readonly ObjectName: string | null, readonly CreateDate: string | null, readonly ModifyDate: string | null } | null, readonly vibrant: { readonly DarkMuted: ReadonlyArray | null, readonly DarkVibrant: ReadonlyArray | null, readonly LightMuted: ReadonlyArray | null, readonly LightVibrant: ReadonlyArray | null, readonly Vibrant: ReadonlyArray | null, readonly Muted: ReadonlyArray | null } | null } | null } | null }> } }; type GatsbyImageSharpFixedFragment = { readonly base64: string | null, readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string }; diff --git a/src/pages/photogallery.tsx b/src/pages/photogallery.tsx index 4982d32..f963ce8 100644 --- a/src/pages/photogallery.tsx +++ b/src/pages/photogallery.tsx @@ -24,7 +24,7 @@ const SORT_KEYS = { } as const; export type GalleryImage = - Queries.GalleryPageQueryQuery["allFile"]["nodes"][number]; + Queries.GalleryPageQueryQuery["all"]["nodes"][number]; const GalleryPage = ({ data }: PageProps) => { const hash = @@ -129,7 +129,7 @@ const GalleryPage = ({ data }: PageProps) => { const images: GalleryImage[] = React.useMemo(() => { const sort = sortKey === "date" - ? R.sort((node1: typeof data["allFile"]["nodes"][number], node2) => { + ? R.sort((node1: typeof data["all"]["nodes"][number], node2) => { const date1 = new Date( R.pathOr("", ["fields", "imageMeta", "dateTaken"], node1) ); @@ -157,7 +157,7 @@ const GalleryPage = ({ data }: PageProps) => { // @ts-ignore sort, filter - )(data.allFile.nodes) as any; + )(data.all.nodes) as any; return ret; } catch (e) { console.log("caught images!", e); @@ -174,6 +174,7 @@ const GalleryPage = ({ data }: PageProps) => { className="bg-white transition-color" // @ts-ignore style={getHelmetSafeBodyStyle( + // @ts-ignore shrug getVibrantStyle({ Muted: [0, 0, 0], LightMuted: [0, 0, 0], @@ -195,6 +196,24 @@ const GalleryPage = ({ data }: PageProps) => { ]} /> +
+

Recently updated

+
+ +
+

All images

+
) => { />
- setShowPalette(val)} - > - - + setShowPalette(val)} + > + +