Starting on downloading all gribs for reference date

This commit is contained in:
Guntis Smaukstelis
2025-02-21 19:48:34 +02:00
parent 8cf4cc826d
commit 60c0c0e54c
4 changed files with 66 additions and 6 deletions
+41
View File
@@ -0,0 +1,41 @@
import { Accessor, Component, createSignal } from 'solid-js'
import styles from './harmonie.module.css'
import { GribMessage } from './interfaces'
export const ReferenceTimes: Component<{
getFileList: Accessor<string[]>,
getGribList: Accessor<GribMessage[]>,
onClick: () => void,
}> = ({
getFileList,
getGribList,
onClick,
}) => {
const [getActiveDate, setActiveDate] = createSignal('')
const dateList = () => {
const datesStr = getFileList().map(f => f.replace('harmonie_', '').split('_')[0])
return [...new Set(datesStr)]
}
function onActiveDate(date: string) {
onClick()
const newValue = getActiveDate() === date ? '' : date
setActiveDate(newValue)
}
return <ul class={styles.dateList}>
{ dateList().map(dateStr =>
<li>
<div onClick={() => onActiveDate(dateStr)}>
{ dateStr }
</div>
<div class={styles.controls} style={{ display: getActiveDate() === dateStr ? 'block' : 'none'}}>
{
getGribList().some(g => g.time.referenceTime === dateStr)
&& <>TODO: download all forecasts</>
}
</div>
</li>)}
</ul>
}