Skip to content

Commit 78c7e3a

Browse files
fix: mobile header css (#148)
* fix: css * fix: header rerenders * fix: header render * fix: header * fix: header * fix: header * fix: header css * fix: header visibility
1 parent e12c2b3 commit 78c7e3a

File tree

2 files changed

+67
-14
lines changed

2 files changed

+67
-14
lines changed

custom-implementation/src/main.css

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1-
#fern-header,
2-
#fern-footer {
1+
#fern-footer, #fern-header {
2+
display: none;
3+
}
4+
5+
#fern-header-content-wrapper {
36
display: block; /* Make the elements visible by default */
47

58
@media (min-width: 1024px) {
69
display: none; /* Hide the elements on screens larger than 1024px */
710
}
11+
}
12+
13+
#devrev-header-content-wrapper {
14+
display: none; /* Hide the wrapper by default */
15+
16+
@media (min-width: 1024px) {
17+
display: block; /* Show the wrapper on screens larger than 1024px */
18+
}
819
}

custom-implementation/src/main.tsx

Lines changed: 54 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ import { ThemeSwitch } from './components/theme-switch'
1111

1212
import { getPageData } from './modules/sanity/utils'
1313

14+
const FERN_CONTENT_WRAPPER_ID = 'fern-header-content-wrapper'
15+
const DEVREV_CONTENT_WRAPPER_ID = 'devrev-header-content-wrapper'
16+
17+
const FERN_HEADER_CONTAINER_ID = 'fern-header'
18+
1419
const render = async () => {
1520
/*
1621
* This is a where we try to make async data call.
@@ -29,18 +34,55 @@ const render = async () => {
2934
ReactDOM.render(React.createElement(ThemeSwitch), wrapper)
3035
}
3136

32-
ReactDOM.render(
33-
React.createElement(Header, {
34-
...data.header,
35-
version: theme == 'dark' ? 'light' : 'dark',
36-
}),
37-
document.getElementById('fern-header'),
38-
() => {
39-
// Once the header component is loaded, make it visible
40-
const header = document.getElementById('fern-header')
41-
if (header && window.innerWidth > 1024) header.style.display = 'block'
42-
},
43-
)
37+
const fernHeaderId = document.getElementById(FERN_CONTENT_WRAPPER_ID)
38+
const devrevHeaderId = document.getElementById(DEVREV_CONTENT_WRAPPER_ID)
39+
40+
if (!fernHeaderId && !devrevHeaderId) {
41+
// Main Container
42+
const fernHeaderContainer = document.createElement('div')
43+
fernHeaderContainer.setAttribute('id', FERN_HEADER_CONTAINER_ID)
44+
45+
// Fern Header
46+
const fernContentWrapper = document.createElement('div')
47+
fernContentWrapper.setAttribute('id', FERN_CONTENT_WRAPPER_ID)
48+
49+
const devrevContentWrapper = document.createElement('div')
50+
devrevContentWrapper.setAttribute('id', DEVREV_CONTENT_WRAPPER_ID)
51+
52+
// Get existing fern-header element and its children
53+
const mainHeaderWrapper = document.getElementById(FERN_HEADER_CONTAINER_ID)
54+
55+
if (mainHeaderWrapper) {
56+
// Move all children to the wrapper
57+
while (mainHeaderWrapper.firstChild) {
58+
fernContentWrapper.appendChild(mainHeaderWrapper.firstChild)
59+
}
60+
}
61+
62+
fernHeaderContainer.appendChild(fernContentWrapper)
63+
fernHeaderContainer.appendChild(devrevContentWrapper)
64+
65+
// Insert the new container where the original fern-header was
66+
if (mainHeaderWrapper) {
67+
mainHeaderWrapper.replaceWith(fernHeaderContainer)
68+
} else {
69+
document.body.appendChild(fernHeaderContainer)
70+
}
71+
72+
ReactDOM.render(
73+
React.createElement(Header, {
74+
...data.header,
75+
version: theme == 'dark' ? 'light' : 'dark',
76+
}),
77+
devrevContentWrapper,
78+
() => {
79+
// Once the header component is loaded, make it visible
80+
const header = document.getElementById(FERN_HEADER_CONTAINER_ID)
81+
if (header) header.style.display = 'block'
82+
}
83+
)
84+
}
85+
4486
ReactDOM.render(
4587
React.createElement(Footer, { ...data.footer }),
4688
document.getElementById('fern-footer'),

0 commit comments

Comments
 (0)