From 3f7fd1f386fa44721798753877825f17a8dc0624 Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Thu, 27 Jun 2024 19:28:12 +1200 Subject: [PATCH] ENH Link github icon to current repo --- src/components/Header.tsx | 8 +++++-- src/components/Layout.tsx | 39 +++++++++++++++++++-------------- src/contexts/LayoutContext.ts | 5 +++++ src/templates/docs-template.tsx | 6 ++++- 4 files changed, 39 insertions(+), 19 deletions(-) create mode 100644 src/contexts/LayoutContext.ts diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 9241283..b048780 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,9 +1,10 @@ -import React, { StatelessComponent, ReactElement } from 'react'; +import React, { StatelessComponent, ReactElement, useContext } from 'react'; import SearchBox from './SearchBox'; import { Link, navigate } from 'gatsby'; import logo from '../images/silverstripe-cms-logo.svg'; import useDocContext from '../hooks/useDocContext'; import useHierarchy from '../hooks/useHierarchy'; +import LayoutContext from '../contexts/LayoutContext'; interface HeaderProps { handleSidebarToggle(e: EventTarget): void @@ -14,6 +15,7 @@ const Header: StatelessComponent = ({ handleSidebarToggle }): React const home = getHomePage(); const currentNode = getCurrentNode() || home; const context = useDocContext(); + const { currentGitRemote } = useContext(LayoutContext); const handleNavigate = (e: any): void => { if (typeof window === 'undefined') { @@ -30,6 +32,8 @@ const Header: StatelessComponent = ({ handleSidebarToggle }): React }; const title = context === 'user' ? 'CMS Help' : 'CMS Docs'; + const gitHref = currentGitRemote && currentGitRemote.hasOwnProperty('href') + ? currentGitRemote.href.replace(/\.git$/, '') : ''; return (
@@ -59,7 +63,7 @@ const Header: StatelessComponent = ({ handleSidebarToggle }): React -
  • + { gitHref &&
  • }