diff options
Diffstat (limited to 'src/hooks')
| -rw-r--r-- | src/hooks/SiteMetadata.ts | 21 | ||||
| -rw-r--r-- | src/hooks/SiteVersion.ts | 19 | ||||
| -rw-r--r-- | src/hooks/index.ts | 4 |
3 files changed, 44 insertions, 0 deletions
diff --git a/src/hooks/SiteMetadata.ts b/src/hooks/SiteMetadata.ts new file mode 100644 index 0000000..889f42b --- /dev/null +++ b/src/hooks/SiteMetadata.ts @@ -0,0 +1,21 @@ +import { useStaticQuery, graphql } from "gatsby"; + +type SiteMetadata = NonNullable< + NonNullable<Queries.getSiteMetadataQuery["site"]>["siteMetadata"] +>; + +export const useSiteMetadata = (): SiteMetadata => { + const { site } = useStaticQuery<Queries.getSiteMetadataQuery>(graphql` + query getSiteMetadata { + site { + siteMetadata { + author + description + title + } + } + } + `); + + return site?.siteMetadata ?? ({} as SiteMetadata); +}; diff --git a/src/hooks/SiteVersion.ts b/src/hooks/SiteVersion.ts new file mode 100644 index 0000000..6726a3c --- /dev/null +++ b/src/hooks/SiteVersion.ts @@ -0,0 +1,19 @@ +import { useStaticQuery, graphql } from "gatsby"; + +type SiteVersion = NonNullable< + NonNullable<Queries.getSiteVersionQuery["site"]>["siteMetadata"] +>["version"]; + +export const useSiteVersion = (): SiteVersion => { + const { site } = useStaticQuery<Queries.getSiteVersionQuery>(graphql` + query getSiteVersion { + site { + siteMetadata { + version + } + } + } + `); + + return site?.siteMetadata?.version ?? "0"; +}; diff --git a/src/hooks/index.ts b/src/hooks/index.ts new file mode 100644 index 0000000..1250d57 --- /dev/null +++ b/src/hooks/index.ts @@ -0,0 +1,4 @@ +import { useSiteMetadata } from "./SiteMetadata"; +import { useSiteVersion } from "./SiteVersion"; + +export { useSiteMetadata, useSiteVersion }; |
