import type { FunctionalComponent } from 'preact';
import { h, Fragment } from 'preact';
import { useState, useEffect } from 'preact/hooks';

const MenuToggle: FunctionalComponent = () => {
	const [sidebarShown, setSidebarShown] = useState(false);

	useEffect(() => {
		const body = document.getElementsByTagName('body')[0];
		if (sidebarShown) {
			body.classList.add('mobile-sidebar-toggle');
		} else {
			body.classList.remove('mobile-sidebar-toggle');
		}
	}, [sidebarShown]);

	return (
		<button
			type="button"
			aria-pressed={sidebarShown ? 'true' : 'false'}
			id="menu-toggle"
			onClick={() => setSidebarShown(!sidebarShown)}
		>
			<svg
				xmlns="http://www.w3.org/2000/svg"
				width="1em"
				height="1em"
				fill="none"
				viewBox="0 0 24 24"
				stroke="currentColor"
			>
				<path
					stroke-linecap="round"
					stroke-linejoin="round"
					stroke-width="2"
					d="M4 6h16M4 12h16M4 18h16"
				/>
			</svg>
			<span className="sr-only">Toggle sidebar</span>
		</button>
	);
};

export default MenuToggle;
 class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/ansg191/WarpX/about/'>about</a><a href='/ansg191/WarpX/'>summary</a><a href='/ansg191/WarpX/refs/?id=607624e34f19f223fedf1f531f5a95bb631f18a3'>refs</a><a class='active' href='/ansg191/WarpX/log/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp?follow=1'>log</a><a href='/ansg191/WarpX/tree/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp?id=607624e34f19f223fedf1f531f5a95bb631f18a3'>tree</a><a href='/ansg191/WarpX/commit/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp?id=607624e34f19f223fedf1f531f5a95bb631f18a3&amp;follow=1'>commit</a><a href='/ansg191/WarpX/diff/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp?id=607624e34f19f223fedf1f531f5a95bb631f18a3&amp;follow=1'>diff</a></td><td class='form'><form class='right' method='get' action='/ansg191/WarpX/log/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp'>
<input type='hidden' name='id' value='607624e34f19f223fedf1f531f5a95bb631f18a3'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/ansg191/WarpX/log/?id=607624e34f19f223fedf1f531f5a95bb631f18a3&amp;follow=1'>root</a>/<a href='/ansg191/WarpX/log/Source?id=607624e34f19f223fedf1f531f5a95bb631f18a3&amp;follow=1'>Source</a>/<a href='/ansg191/WarpX/log/Source/FieldSolver?id=607624e34f19f223fedf1f531f5a95bb631f18a3&amp;follow=1'>FieldSolver</a>/<a href='/ansg191/WarpX/log/Source/FieldSolver/SpectralSolver?id=607624e34f19f223fedf1f531f5a95bb631f18a3&amp;follow=1'>SpectralSolver</a>/<a href='/ansg191/WarpX/log/Source/FieldSolver/SpectralSolver/SpectralAlgorithms?id=607624e34f19f223fedf1f531f5a95bb631f18a3&amp;follow=1'>SpectralAlgorithms</a>/<a href='/ansg191/WarpX/log/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp?id=607624e34f19f223fedf1f531f5a95bb631f18a3&amp;follow=1'>SpectralBaseAlgorithm.cpp</a> (<a href='/ansg191/WarpX/log/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp?id=607624e34f19f223fedf1f531f5a95bb631f18a3'>unfollow</a>)</div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/ansg191/WarpX/log/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.cpp?id=607624e34f19f223fedf1f531f5a95bb631f18a3&amp;showmsg=1&amp;follow=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr><td><span title='2020-05-04 08:00:26 -0700'>2020-05-04</span></td><td><a href='/ansg191/WarpX/commit/Source/Diagnostics/ReducedDiags/MultiReducedDiags.cpp?id=99c6476df7f7111667bace46954e14f37d0e8f0f&amp;follow=1'>Fix error (#974)</a></td><td><img src='//www.gravatar.com/avatar/6d690c28fa72d321d1d76a5d7ed910c2?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> NeilZaim
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td><span title='2020-05-01 17:12:31 -0700'>2020-05-01</span></td><td><a href='/ansg191/WarpX/commit/Docs/source/running_cpp/parameters.rst?id=097bd05235a1d0a5761a3e7bf4a83eea4b113bb2&amp;follow=1'>Self Fields: Mean Gamma (#958)</a></td><td><img src='//www.gravatar.com/avatar/81e1ef75c8481b89748d2b10a3d702e9?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Axel Huebl
</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr>
<tr><td><span title='2020-05-01 16:44:35 -0700'>2020-05-01</span></td><td><a href='/ansg191/WarpX/commit/Source/WarpX.cpp?id=26d6358d3c7aff7b4310af34fc771d5c8f2628fe&amp;follow=1'>Do not rely on nodal flags (#931)</a></td><td><img src='//www.gravatar.com/avatar/f370fc53b073e29cc6e0273d7032ae58?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Edoardo Zoni
</td><td>10</td><td><span class='deletions'>-156</span>/<span class='insertions'>+174</span></td></tr>
<tr><td><span title='2020-05-01 16:30:01 -0700'>2020-05-01</span></td><td><a href='/ansg191/WarpX/commit/Source/WarpX.cpp?id=ed8fdc9ca97aa51c522549c565dda4123c679eba&amp;follow=1'>Add parser for more general intervals (slices) (#925)</a></td><td><img src='//www.gravatar.com/avatar/6d690c28fa72d321d1d76a5d7ed910c2?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> NeilZaim
</td><td>10</td><td><span class='deletions'>-13</span>/<span class='insertions'>+360</span></td></tr>
<tr><td><span title='2020-05-01 14:19:48 -0700'>2020-05-01</span></td><td><a href='/ansg191/WarpX/commit/Source/WarpX.cpp?id=96a59e58c57814bc3e0eed73f8c8919bd6c48620&amp;follow=1'>Delete old diagnostics (#933)</a></td><td><img src='//www.gravatar.com/avatar/ee0b6062a643a0f26f42aee4bf0fa01d?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> MaxThevenet
</td><td>77</td><td><span class='deletions'>-1319</span>/<span class='insertions'>+605</span></td></tr>
<tr><td><span title='2020-05-01 08:39:45 -0700'>2020-05-01</span></td><td><a href='/ansg191/WarpX/commit/Examples/Tests/radiation_reaction/test_const_B_analytical/analysis_classicalRR.py?id=f8941d7e4d1a2e8388360a22e1cbf1ef7bcf2cb3&amp;follow=1'>Most fun PR ever: print error and tolerance before ASSERT in CI (#967)</a></td><td><img src='//www.gravatar.com/avatar/ee0b6062a643a0f26f42aee4bf0fa01d?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> MaxThevenet
</td><td>18</td><td><span class='deletions'>-44</span>/<span class='insertions'>+133</span></td></tr>
<tr><td><span title='2020-05-01 07:28:19 -0700'>2020-05-01</span></td><td><a href='/ansg191/WarpX/commit/Source/WarpX.H?id=639cf17fda1d048602c675c5b1808893bd29d73e&amp;follow=1'>Switch to new overloads of makeKnapSack, makeSFC w/ reduced comms (#955)</a></td><td><img src='//www.gravatar.com/avatar/c985a5ac5756c2527ae7ffc2fee16fcd?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Michael E Rowan
</td><td>2</td><td><span class='deletions'>-72</span>/<span class='insertions'>+50</span></td></tr>
<tr><td><span title='2020-05-01 07:15:10 -0700'>2020-05-01</span></td><td><a href='/ansg191/WarpX/commit/Source/Diagnostics/WarpXOpenPMD.cpp?id=765e708caedb86ae89b0ba633a04c42058cd8789&amp;follow=1'>openPMD: Fix no-MPI build (#968)</a></td><td><img src='//www.gravatar.com/avatar/81e1ef75c8481b89748d2b10a3d702e9?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Axel Huebl
</td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+12</span></td></tr>
<tr><td><span title='2020-04-30 21:29:35 -0700'>2020-04-30</span></td><td><a href='/ansg191/WarpX/commit/Docs/source/running_python/how_to_run.rst?id=9b755a9e404444edd92a4c857a350ffb8c591ade&amp;follow=1'>Update Python docs (#960)</a></td><td><img src='//www.gravatar.com/avatar/553c1ee3ed71c854378f0c1ed9a238df?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> David Grote
</td><td>3</td><td><span class='deletions'>-7</span>/<span class='insertions'>+26</span></td></tr>
<tr><td><span title='2020-04-30 17:39:41 -0700'>2020-04-30</span></td><td><a href='/ansg191/WarpX/commit/Source/Make.WarpX?id=d14654b81a6441cfe29eb8f3dde1cd95feef57b4&amp;follow=1'>openPMD: Binary Suffix (#966)</a></td><td><img src='//www.gravatar.com/avatar/81e1ef75c8481b89748d2b10a3d702e9?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Axel Huebl
</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr>
<tr><td><span title='2020-04-30 13:45:58 -0700'>2020-04-30</span></td><td><a href='/ansg191/WarpX/commit/Source/Particles/PhysicalParticleContainer.cpp?id=97f4361e62562fb24a015a16fdd0bc5eb72f2e36&amp;follow=1'>Fix bug when compiling OpenPMD + 2D (#963)</a></td><td><img src='//www.gravatar.com/avatar/ee0b6062a643a0f26f42aee4bf0fa01d?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> MaxThevenet
</td><td>1</td><td><span class='deletions'>-4</span>/<span class='insertions'>+4</span></td></tr>
<tr><td><span title='2020-04-29 22:10:09 -0700'>2020-04-29</span></td><td><a href='/ansg191/WarpX/commit/Source/Utils/WarpX_Complex.H?id=779661962a2d9db1e9555d25c010d7d285bbbd3b&amp;follow=1'>CI: macOS Single Precision (#964)</a></td><td><img src='//www.gravatar.com/avatar/81e1ef75c8481b89748d2b10a3d702e9?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Axel Huebl
</td><td>4</td><td><span class='deletions'>-48</span>/<span class='insertions'>+11</span></td></tr>
<tr><td><span title='2020-04-29 09:08:56 -0700'>2020-04-29</span></td><td><a href='/ansg191/WarpX/commit/Regression/WarpX-GPU-tests.ini?id=06a2613a6c436ac76ac3cf03e4589b819a6f3453&amp;follow=1'>use direct deposition for nodal tests also on Garuda (#962)</a></td><td><img src='//www.gravatar.com/avatar/ee0b6062a643a0f26f42aee4bf0fa01d?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> MaxThevenet
</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td><span title='2020-04-29 07:21:53 -0700'>2020-04-29</span></td><td><a href='/ansg191/WarpX/commit/Regression/WarpX-tests.ini?id=7083df661db930f29729780c23cd2ca727268863&amp;follow=1'>[Mini]Fix Langmuir_multi_nodal test case (#961)</a></td><td><img src='//www.gravatar.com/avatar/553c1ee3ed71c854378f0c1ed9a238df?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> David Grote
</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td><span title='2020-04-28 10:58:28 -0700'>2020-04-28</span></td><td><a href='/ansg191/WarpX/commit/Source/Utils/WarpXUtil.cpp?id=eed48168c350b9368ae811124883382c0c6cab68&amp;follow=1'>Style change to match the standard (#957)</a></td><td><img src='//www.gravatar.com/avatar/c985a5ac5756c2527ae7ffc2fee16fcd?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Michael E Rowan
</td><td>15</td><td><span class='deletions'>-52</span>/<span class='insertions'>+52</span></td></tr>
<tr><td><span title='2020-04-28 10:31:58 -0700'>2020-04-28</span></td><td><a href='/ansg191/WarpX/commit/Source/WarpX.H?id=67aae2d1378e3a6b62cbee04671e399747a77f2b&amp;follow=1'>Add checkpoint capability to new diags (#951)</a></td><td><img src='//www.gravatar.com/avatar/ee0b6062a643a0f26f42aee4bf0fa01d?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> MaxThevenet
</td><td>7</td><td><span class='deletions'>-15</span>/<span class='insertions'>+172</span></td></tr>
<tr><td><span title='2020-04-28 10:00:36 -0700'>2020-04-28</span></td><td><a href='/ansg191/WarpX/commit/Regression/WarpX-tests.ini?id=6bc92cd569ff1447218abf162c89996e1d0bad7f&amp;follow=1'>Reduce size of test output (#857)</a></td><td><img src='//www.gravatar.com/avatar/ee0b6062a643a0f26f42aee4bf0fa01d?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> MaxThevenet
</td><td>7</td><td><span class='deletions'>-104</span>/<span class='insertions'>+50</span></td></tr>
<tr><td><span title='2020-04-26 20:15:02 -0700'>2020-04-26</span></td><td><a href='/ansg191/WarpX/commit/Source/Particles/Filter/FilterFunctors.H?id=377568fa95c1c19f4e0f7868b6704ca35b0ba942&amp;follow=1'>minor code changes to remove warnings when compiling  with gcc DEBUG=TRUE (#950)</a></td><td><img src='//www.gravatar.com/avatar/ee0b6062a643a0f26f42aee4bf0fa01d?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> MaxThevenet
</td><td>7</td><td><span class='deletions'>-87</span>/<span class='insertions'>+89</span></td></tr>
<tr><td><span title='2020-04-24 19:24:51 -0700'>2020-04-24</span></td><td><a href='/ansg191/WarpX/commit/Source/Utils/WarpXConst.H?id=0dd2d6f892f6c7886c6fd03f50bfa101b6494355&amp;follow=1'>Read species distribution from OPMD - part 3 (#883)</a></td><td><img src='//www.gravatar.com/avatar/4f29d918fc51a9f26bc360ad429b9e87?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> L. Diana Amorim
</td><td>5</td><td><span class='deletions'>-37</span>/<span class='insertions'>+114</span></td></tr>
<tr><td><span title='2020-04-24 16:22:22 -0700'>2020-04-24</span></td><td><a href='/ansg191/WarpX/commit/Source/Parallelization/WarpXRegrid.cpp?id=3ef8e08c65dfd04bc98c8b9238b9f230d4c10cde&amp;follow=1'>Re-initialize diag functors after LoadBalance (#943)</a></td><td><img src='//www.gravatar.com/avatar/2cd8ae1b55754575852e020409fa3861?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Revathi  Jambunathan
</td><td>7</td><td><span class='deletions'>-56</span>/<span class='insertions'>+89</span></td></tr>
