diff options
Diffstat (limited to 'frontend/coverage/src/App.tsx.html')
| -rw-r--r-- | frontend/coverage/src/App.tsx.html | 163 |
1 files changed, 143 insertions, 20 deletions
diff --git a/frontend/coverage/src/App.tsx.html b/frontend/coverage/src/App.tsx.html index cd305cc..6ec66af 100644 --- a/frontend/coverage/src/App.tsx.html +++ b/frontend/coverage/src/App.tsx.html @@ -23,30 +23,30 @@ <div class='clearfix'> <div class='fl pad1y space-right2'> - <span class="strong">72.72% </span> + <span class="strong">65.71% </span> <span class="quiet">Statements</span> - <span class='fraction'>16/22</span> + <span class='fraction'>23/35</span> </div> <div class='fl pad1y space-right2'> - <span class="strong">62.5% </span> + <span class="strong">60% </span> <span class="quiet">Branches</span> - <span class='fraction'>10/16</span> + <span class='fraction'>15/25</span> </div> <div class='fl pad1y space-right2'> - <span class="strong">62.5% </span> + <span class="strong">53.84% </span> <span class="quiet">Functions</span> - <span class='fraction'>5/8</span> + <span class='fraction'>7/13</span> </div> <div class='fl pad1y space-right2'> - <span class="strong">72.72% </span> + <span class="strong">64.7% </span> <span class="quiet">Lines</span> - <span class='fraction'>16/22</span> + <span class='fraction'>22/34</span> </div> @@ -162,7 +162,48 @@ <a name='L97'></a><a href='#L97'>97</a> <a name='L98'></a><a href='#L98'>98</a> <a name='L99'></a><a href='#L99'>99</a> -<a name='L100'></a><a href='#L100'>100</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> @@ -201,9 +242,28 @@ <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> @@ -220,6 +280,12 @@ <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> @@ -234,6 +300,12 @@ <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> <span class="cline-any cline-yes">2x</span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-yes">2x</span> @@ -242,9 +314,19 @@ <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-yes">2x</span> <span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> <span class="cline-any cline-neutral"> </span> @@ -299,31 +381,61 @@ import FeedList from './components/FeedList'; import FeedItems from './components/FeedItems'; import Settings from './components/Settings'; -function Dashboard({ theme, setTheme }: { theme: string; setTheme: (t: string) => void }) { - const [sidebarVisible, setSidebarVisible] = useState(true); +interface DashboardProps { + theme: string; + setTheme: (t: string) => void; + fontTheme: string; + setFontTheme: (t: string) => void; +} + +function Dashboard({ theme, setTheme, fontTheme, setFontTheme }: DashboardProps) { + const [sidebarVisible, setSidebarVisible] = useState(window.innerWidth > 768); + + useEffect(() => { + const handleResize = <span class="fstat-no" title="function not covered" >() => {</span> +<span class="cstat-no" title="statement not covered" > if (window.innerWidth > 768) {</span> +<span class="cstat-no" title="statement not covered" > setSidebarVisible(true);</span> + } else { +<span class="cstat-no" title="statement not covered" > setSidebarVisible(false);</span> + } + }; + window.addEventListener('resize', handleResize); + return () => window.removeEventListener('resize', handleResize); + }, []); return ( <div - className={`dashboard ${sidebarVisible ? 'sidebar-visible' : <span class="branch-1 cbranch-no" title="branch not covered" >'sidebar-hidden'}</span> theme-${theme}`} + className={`dashboard ${sidebarVisible ? 'sidebar-visible' : <span class="branch-1 cbranch-no" title="branch not covered" >'sidebar-hidden'}</span> theme-${theme} font-${fontTheme}`} > <div className="dashboard-content"> - {!sidebarVisible && ( -<span class="branch-1 cbranch-no" title="branch not covered" > <button</span> + {(!sidebarVisible || window.innerWidth <= 768) && ( +<span class="branch-2 cbranch-no" title="branch not covered" > <button</span> className="sidebar-toggle fixed-toggle" - onClick={<span class="fstat-no" title="function not covered" >() => <span class="cstat-no" title="statement not covered" >s</span>etSidebarVisible(true)}</span> - title="Show Sidebar" + onClick={<span class="fstat-no" title="function not covered" >() => <span class="cstat-no" title="statement not covered" >s</span>etSidebarVisible(!sidebarVisible)}</span> + title={sidebarVisible ? "Hide Sidebar" : "Show Sidebar"} > 🐱 </button> )} + {sidebarVisible && ( + <div + className="sidebar-backdrop" + onClick={<span class="fstat-no" title="function not covered" >() => <span class="cstat-no" title="statement not covered" >s</span>etSidebarVisible(false)}</span> + /> + )} <aside className={`dashboard-sidebar ${sidebarVisible ? '' : <span class="branch-1 cbranch-no" title="branch not covered" >'hidden'}</span>`}> - <FeedList theme={theme} setTheme={setTheme} setSidebarVisible={setSidebarVisible} /> + <FeedList + theme={theme} + setTheme={setTheme} + setSidebarVisible={setSidebarVisible} + isMobile={window.innerWidth <= 768} + /> </aside> <main className="dashboard-main"> <Routes> <Route path="/feed/:feedId" element={<FeedItems />} /> <Route path="/tag/:tagName" element={<FeedItems />} /> - <Route path="/settings" element={<Settings />} /> + <Route path="/settings" element={<Settings fontTheme={fontTheme} setFontTheme={setFontTheme} />} /> <Route path="/" element={<FeedItems />} /> </Routes> </main> @@ -334,12 +446,18 @@ function Dashboard({ theme, setTheme }: { theme: string; setTheme: (t: string) = function App() { const [theme, setTheme] = useState(localStorage.getItem('neko-theme') || 'light'); + const [fontTheme, setFontTheme] = useState(localStorage.getItem('neko-font-theme') || 'default'); const handleSetTheme = <span class="fstat-no" title="function not covered" >(n</span>ewTheme: string) => { <span class="cstat-no" title="statement not covered" > setTheme(newTheme);</span> <span class="cstat-no" title="statement not covered" > localStorage.setItem('neko-theme', newTheme);</span> }; + const handleSetFontTheme = <span class="fstat-no" title="function not covered" >(n</span>ewFontTheme: string) => { +<span class="cstat-no" title="statement not covered" > setFontTheme(newFontTheme);</span> +<span class="cstat-no" title="statement not covered" > localStorage.setItem('neko-font-theme', newFontTheme);</span> + }; + const basename = window.location.pathname.startsWith('/v2') ? '/v2' : <span class="branch-1 cbranch-no" title="branch not covered" >'/';</span> return ( @@ -350,7 +468,12 @@ function App() { path="/*" element={ <RequireAuth> - <Dashboard theme={theme} setTheme={handleSetTheme} /> + <Dashboard + theme={theme} + setTheme={handleSetTheme} + fontTheme={fontTheme} + setFontTheme={handleSetFontTheme} + /> </RequireAuth> } /> @@ -367,7 +490,7 @@ export default App; <div class='footer quiet pad2 space-top1 center small'> Code coverage generated by <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-14T18:02:09.004Z + at 2026-02-15T05:30:50.842Z </div> <script src="../prettify.js"></script> <script> |
