diff options
Diffstat (limited to 'src/scripts/sidebarImage.ts')
| -rw-r--r-- | src/scripts/sidebarImage.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/scripts/sidebarImage.ts b/src/scripts/sidebarImage.ts new file mode 100644 index 0000000..456059e --- /dev/null +++ b/src/scripts/sidebarImage.ts @@ -0,0 +1,30 @@ +document.addEventListener("DOMContentLoaded", (): void => { + const currentMinute: number = Math.floor(Date.now() / 60000); + const sidebarImagePathPrefix: string = "/images/internal/sidebar"; + + type ImageRule = { + divisor: number; + filename: string; + }; + + const imageRules: ImageRule[] = [ + { divisor: 7, filename: "7.gif" }, + { divisor: 5, filename: "5.gif" }, + { divisor: 3, filename: "3.gif" }, + { divisor: 2, filename: "2.gif" }, + ]; + + const matchedRule: ImageRule | undefined = imageRules.find( + (rule: ImageRule): boolean => currentMinute % rule.divisor === 0 + ); + + const imageName: string = matchedRule ? matchedRule.filename : "default.gif"; + const sidebarImage: string = `${sidebarImagePathPrefix}/${imageName}`; + + const imageElement: HTMLImageElement | null = document.getElementById( + "sidebar-image" + ) as HTMLImageElement; + if (imageElement) { + imageElement.src = sidebarImage; + } +}); |
