diff options
author | Jakob Stendahl <jakob.stendahl@outlook.com> | 2022-04-28 01:32:54 +0200 |
---|---|---|
committer | Jakob Stendahl <jakob.stendahl@outlook.com> | 2022-04-28 01:33:08 +0200 |
commit | 55cd53f4e6b1e13d2866a84a9631be8f89651cf2 (patch) | |
tree | 5b77ffc3311b490d4f979055e97823011280aace /src/components/Forecast/ForecastDrawer.svelte | |
parent | ae52909d00cdcda30d6ed07e302c0a50abe70b75 (diff) | |
download | Aurora-data-55cd53f4e6b1e13d2866a84a9631be8f89651cf2.tar.gz Aurora-data-55cd53f4e6b1e13d2866a84a9631be8f89651cf2.zip |
Add one hour forecast
Diffstat (limited to 'src/components/Forecast/ForecastDrawer.svelte')
-rw-r--r-- | src/components/Forecast/ForecastDrawer.svelte | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/src/components/Forecast/ForecastDrawer.svelte b/src/components/Forecast/ForecastDrawer.svelte new file mode 100644 index 0000000..b47a810 --- /dev/null +++ b/src/components/Forecast/ForecastDrawer.svelte @@ -0,0 +1,108 @@ +<script lang="ts"> + import OneHourForecast from "./OneHourForecast/OneHourForecast.svelte"; + import ThreeDayForecast from "./ThreeDayForecast/ThreeDayForecast.svelte"; + + import { earth_weather, space_weather } from "../../stores.ts"; + + let selected_version = ThreeDayForecast; + +</script> + +<style> + .drawer { + border-top-left-radius: 2rem; + border-top-right-radius: 2rem; + --bg-opacity: 1; + background-color: #f7fafc; + background-color: rgba(247, 250, 252, var(--bg-opacity)); + padding: 1.5rem; + --text-opacity: 1; + color: #1a202c; + color: rgba(26, 32, 44, var(--text-opacity)); + height: 100%; + overflow: hidden; + align-self: stretch; + box-shadow: 0px -6px 7px 0px black; + } + + @media (min-width: 640px), (min-height: 720px) { + .drawer { + padding: 2rem; + padding-top: 1.5rem; + } + } + + @media (min-width: 640px) { + .drawer { + border-bottom-right-radius: 1rem; + border-bottom-left-radius: 1rem; + } + } + + .drawer .header { + display: flex; + align-items: flex-start; + } + + .drawer h2 { + text-transform: uppercase; + font-size: 0.875rem; + letter-spacing: 0.1em; + font-weight: 700; + margin-top: 0.25rem; + margin-bottom: 0.5rem; + margin-right: auto; + } + + .version-picker { + display: flex; + font-size: 0.875rem; + gap: 0.5rem; + align-items: center; + color: #616161; + } + .version-picker > * { + transition: all 0.1s ease; + } + + .version-picker .selected { + background-color: #c2c2c2; + padding: 3px 5px; + box-sizing: border-box; + border-radius: 10px; + color: black; + } + + .no-data { + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + color: grey; + + } + + .no-data { + margin-top: 1rem; + } +</style> + +<div class="drawer"> + {#if !$earth_weather.updating && !$space_weather.updating} + <div class="header"> + <h2>Forecast</h2> + <div class="version-picker"> + <div class:selected={selected_version == OneHourForecast} on:click={() => selected_version = OneHourForecast}>hour</div> + <div class:selected={selected_version == ThreeDayForecast} on:click={() => selected_version = ThreeDayForecast}>3 day</div> + </div> + </div> + <svelte:component this={selected_version} /> + {:else} + <div class="no-data"> + <i class="fas fa-7x fa-exclamation-triangle"></i> + <p>No prediction data</p> + </div> + {/if} +</div> |