Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
4225f25
Added support for dropdown menu in navbar tihi
simsine Mar 27, 2025
1ecfc1b
Fikset warining og styling og description
simsine Apr 30, 2025
4c0a508
added for studenter
184885 Aug 28, 2025
7bd7d9e
changed names, paths, and desc for studenter
mathiasunneland Aug 28, 2025
337609f
add dropdown for styret
mathiasunneland Aug 28, 2025
94c97ce
added writing error with dropdown for styret
mathiasunneland Aug 28, 2025
a43bb49
melding
184885 Aug 28, 2025
512ef0e
Lagt til Styret
184885 Aug 28, 2025
8917fb3
flytte galleri og arrangementer under studenter dropdown
mathiasunneland Aug 28, 2025
7e557ca
flyttet galleri og arrangement
184885 Aug 28, 2025
13a4957
Flyttet galleri+arrangement
184885 Aug 28, 2025
067ea0a
Fiks problem med sti til galleri
184885 Sep 8, 2025
4b5ac58
Flytte styret fra egen dropdown til under for studenter
mathiasunneland Sep 8, 2025
de57454
Update browserslist
mathiasunneland Sep 8, 2025
3f9af05
fix deprecated onclick to onpress
mathiasunneland Sep 8, 2025
dccec1e
actually fixing deprecated onclick to onpress
mathiasunneland Sep 8, 2025
8fb5349
Lagt til styret side
184885 Sep 8, 2025
1d3e79e
Fix stillingsannonser under for bedrifter
mathiasunneland Sep 8, 2025
d559ad9
Remove om oss from studenter dropdown and move students before bedrifter
mathiasunneland Sep 18, 2025
d3a0185
Fixing navbar and organization
mathiasunneland Oct 16, 2025
bbc27fb
Fix everything, except dropdown menu bug and image bug
mathiasunneland Oct 20, 2025
5c8ee89
Fix dropdown menu clicking bug
mathiasunneland Oct 22, 2025
22b45b4
Fix image loading for svg error
mathiasunneland Oct 22, 2025
dbbeaaa
Fix stillingsannonser
mathiasunneland Oct 22, 2025
c0950c5
Test github actions again
mathiasunneland Oct 22, 2025
dfeab82
Fix no-unescaped-entities error and fill in dependency array for floa…
mathiasunneland Oct 22, 2025
b4e9092
Silent img warning and fix button error
mathiasunneland Oct 22, 2025
8255ff7
Fix dropdown error
mathiasunneland Oct 22, 2025
20bd31a
Fix dropdown list styling, remove dev path in header, update HeroUI
simsine Oct 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions app/(root)/arrangement/eventCardPaginated.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ const EventCardPaginated: Component<EventCardPaginatedProps> = ({
className={"w-full sm:w-[550px]"}
bottom={
showButton ? (
<ButtonAndProgress loading={loading} onClick={fetchMoreEvents} />
<ButtonAndProgress loading={loading} onPress={fetchMoreEvents} />
) : undefined
}
{...props}>
Expand All @@ -81,15 +81,15 @@ const EventCardPaginated: Component<EventCardPaginatedProps> = ({

export default EventCardPaginated

const ButtonAndProgress: Component<{ loading: boolean; onClick: VoidFunction }> = ({
const ButtonAndProgress: Component<{ loading: boolean; onPress: VoidFunction }> = ({
loading,
onClick,
onPress,
}) => {
if (loading) {
return <CircularProgressIndicator aria-label={"Laster inn flere arrangementer"} />
}
return (
<Button className={"w-fit"} onClick={onClick}>
<Button className={"w-fit"} onPress={onPress}>
Se mer
</Button>
)
Expand Down
25 changes: 25 additions & 0 deletions app/(root)/bedrifter/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import InfoPageContent from "@/components/omOss/InfoPageContent"
import { getInfoSiderBySlug } from "@/sanity/queries/infoSider"
import { type Metadata } from "next"

export const metadata: Metadata = {
title: "For bedrifter | Root Linjeforening",
description: "Informasjon for bedrifter om Root Linjeforening",
}

export const revalidate = 30 // 30 sek

/**
* Viser diverse informasjon om Root Linjeforeningen. Samt anne informasjon som er relevant for linjeforeningen.
*/
const BedrifterPage: AsyncPage = async () => {
const BedrifterPage = await getInfoSiderBySlug("for-bedrifter")

if (!BedrifterPage) {
return <div className="p-10 text-center">Fant ikke siden &quot;For bedrifter&quot;.</div>
}

return <InfoPageContent infoSider={[BedrifterPage]} />
}

export default BedrifterPage
8 changes: 4 additions & 4 deletions app/(root)/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,13 @@ p:empty + p:empty {
@apply min-h-[1px];
}

ul {
/* ul {
@apply list-disc pl-3.5;
}
} */

ol {
/* ol {
@apply list-decimal pl-3.5;
}
} */

br {
@apply my-2 block;
Expand Down
2 changes: 1 addition & 1 deletion app/(root)/globals.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ interface ChildProps extends DefaultProps {
}

interface ButtonProps extends ChildProps {
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void
onPress?: (event: React.MouseEvent<HTMLButtonElement>) => void
type?: "button" | "submit" | "reset"
disabled?: boolean
endContent?: React.ReactNode
Expand Down
20 changes: 0 additions & 20 deletions app/(root)/om-oss/page.tsx

This file was deleted.

25 changes: 25 additions & 0 deletions app/(root)/om-root/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import InfoPageContent from "@/components/omOss/InfoPageContent"
import { getInfoSiderBySlug } from "@/sanity/queries/infoSider"
import { type Metadata } from "next"

export const metadata: Metadata = {
title: "Om Root | Root Linjeforening",
description: "Informasjon om Root Linjeforening",
}

export const revalidate = 30 // 30 sek

/**
* Viser diverse informasjon om Root Linjeforeningen. Samt anne informasjon som er relevant for linjeforeningen.
*/
const OmRootPage: AsyncPage = async () => {
const omRootPage = await getInfoSiderBySlug("om-root")

if (!omRootPage) {
return <div className="p-10 text-center">Fant ikke siden &quot;Om Root&quot;.</div>
}

return <InfoPageContent infoSider={[omRootPage]} />
}

export default OmRootPage
25 changes: 25 additions & 0 deletions app/(root)/soundboks-utleie/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import InfoPageContent from "@/components/omOss/InfoPageContent"
import { getInfoSiderBySlug } from "@/sanity/queries/infoSider"
import { type Metadata } from "next"

export const metadata: Metadata = {
title: "Soundboks utleie | Root Linjeforening",
description: "Utleie av soundboksen til Root Linjeforening",
}

export const revalidate = 30 // 30 sek

/**
* Viser diverse informasjon om Root Linjeforeningen. Samt anne informasjon som er relevant for linjeforeningen.
*/
const SoundboksUtleiePage: AsyncPage = async () => {
const SoundboksUtleiePage = await getInfoSiderBySlug("soundboks-utleie")

if (!SoundboksUtleiePage) {
return <div className="p-10 text-center">Fant ikke siden &quot;Soundboks utleie&quot;.</div>
}

return <InfoPageContent infoSider={[SoundboksUtleiePage]} />
}

export default SoundboksUtleiePage
25 changes: 25 additions & 0 deletions app/(root)/styret/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import InfoPageContent from "@/components/omOss/InfoPageContent"
import { getInfoSiderBySlug } from "@/sanity/queries/infoSider"
import { type Metadata } from "next"

export const metadata: Metadata = {
title: "Styret | Root Linjeforening",
description: "Informasjon om styret til Root Linjeforening",
}

export const revalidate = 30 // 30 sek

/**
* Viser diverse informasjon om Root Linjeforeningen. Samt anne informasjon som er relevant for linjeforeningen.
*/
const StyretPage: AsyncPage = async () => {
const StyretPage = await getInfoSiderBySlug("styret")

if (!StyretPage) {
return <div className="p-10 text-center">Fant ikke siden &quot;Styret&quot;.</div>
}

return <InfoPageContent infoSider={[StyretPage]} />
}

export default StyretPage
9 changes: 7 additions & 2 deletions components/buttons/button.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use client"
import { Button as _Button, Link } from "@heroui/react"
import { Button as _Button, Link, type ButtonProps as HeroUIButtonProps, type PressEvent } from "@heroui/react"
import { LinkIcon } from "@heroicons/react/24/outline"
import { defaultIconSize } from "@/components/icons/icon"

Expand All @@ -11,7 +11,12 @@ const buttonClassNames = "min-w-[100px] bg-root-primary p-3 text-white"
* @param className CSS-klassen til knappen
* @param props Props som skal sendes til button-elementet, blant annet onClick, disabled, etc.
*/
export const Button: Component<ButtonProps> = ({ children, className, ...props }) => (

type RootButtonProps = HeroUIButtonProps & {
onPress?: (e: PressEvent) => void
}

export const Button: Component<RootButtonProps> = ({ children, className, ...props }) => (
<_Button radius={"lg"} className={`${buttonClassNames} ${className}`} {...props}>
{children}
</_Button>
Expand Down
2 changes: 1 addition & 1 deletion components/buttons/darkModeToggle.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const DarkModeToggle = () => {
{buttons.map(({ text, theme, icon }) => (
<Button
key={theme}
onClick={() => setTheme(theme)}
onPress={() => setTheme(theme)}
size="sm"
aria-label={text}
className={selectedTheme === theme ? "bg-root-primary text-white" : undefined}>
Expand Down
2 changes: 1 addition & 1 deletion components/buttons/icsButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const IcsButton: Component<IcsButtonProps> = ({
}

return (
<Button onClick={download} {...props}>
<Button onPress={download} {...props}>
Legg til i kalender
<ArrowDownOnSquareIcon width={defaultIconSize} />
</Button>
Expand Down
3 changes: 2 additions & 1 deletion components/dropdown/dropdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
DropdownMenu,
DropdownItem,
Button,
type ButtonProps as HeroUIButtonProps,
} from "@heroui/react"

export type Key = string | number
Expand All @@ -16,7 +17,7 @@ interface DropdownProps extends DefaultProps {
items?: Item[]
label?: string
onAction?: (key: Key) => void
buttonProps?: ButtonProps
buttonProps?: HeroUIButtonProps
}

const Dropdown: Component<DropdownProps> = ({
Expand Down
8 changes: 4 additions & 4 deletions components/floatingMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ const FloatingMenu: Component<ChildProps> = ({ children, className, ...props })
const menuRef = useRef<HTMLDivElement>(null)

useEffect(() => {
function onClick(e: MouseEvent): void {
function onPress(e: MouseEvent): void {
if (menuRef.current && !menuRef.current.contains(e.target as Node)) {
toggleMenu(false)
}
}

document.addEventListener("click", onClick)
return () => document.removeEventListener("click", onClick)
}, [])
document.addEventListener("click", onPress)
return () => document.removeEventListener("click", onPress)
}, [toggleMenu])

return (
<div ref={menuRef} className={`fixed left-0 z-50 ${className}`} {...props}>
Expand Down
59 changes: 46 additions & 13 deletions components/header/header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ import {
NavbarMenuToggle,
NavbarMenu,
NavbarMenuItem,
Dropdown,
DropdownTrigger,
DropdownMenu,
DropdownItem,
Button as HeroUIButton
} from "@heroui/react"
import { useEffect, useState } from "react"
import Image from "next/image"
Expand Down Expand Up @@ -66,18 +71,46 @@ const Header: Component = () => {
</NavbarBrand>
{/*Vanlig meny - Vises ikke på små skjermer*/}
<NavbarContent className={"hidden gap-4 md:flex"} justify={"end"}>
{paths.map(item => (
<NavbarItem key={item.path} isActive={item.path === currentPath}>
<Link
className={`${
item.path === currentPath && "before:content-['/']"
} w-full rounded-xl bg-gray-700/20 p-2 !text-white hover:text-white focus:!outline-white`}
href={item.path}
size={"lg"}>
{item.name}
</Link>
</NavbarItem>
))}
{paths.map((item, index) => {
if (item.subpaths === undefined) {
return <NavbarItem key={`${item}-${index}`} isActive={item.path === currentPath}>
<Link
className={`${
item.path === currentPath && "before:content-['/']"
} w-full rounded-xl bg-gray-700/20 p-2 !text-white hover:text-white focus:!outline-white`}
href={item.path}
size={"lg"}>
{item.name}
</Link>
</NavbarItem>
} else {
// eslint-disable-next-line react/jsx-key
return <Dropdown key={`${item}-${index}`}>
<NavbarItem>
<DropdownTrigger className="cursor-pointer">
<Link
className={"w-full rounded-xl bg-gray-700/20 p-2 !text-white hover:text-white focus:!outline-white"}
size={"lg"}>
{item.name}
</Link>
</DropdownTrigger>
</NavbarItem>
<DropdownMenu>
{item.subpaths.map(subitem =>
<DropdownItem
key={subitem.name}
description={subitem.description}
as={Link}
href={subitem.path}
className="w-full rounded-xl bg-gray-700/20 p-2 !text-white hover:text-white focus:!outline-white"
>
{subitem.name}
</DropdownItem>
)}
</DropdownMenu>
</Dropdown>
}
})}
</NavbarContent>
{/*Hamburgermeny - Vises bare på små skjermer*/}
<NavbarContent className={"md:hidden"} justify={"end"} as={"div"}>
Expand All @@ -104,7 +137,7 @@ const Header: Component = () => {
))}
</div>

<Button className={"mx-auto w-fit"} onClick={() => setIsMenuOpen(false)}>
<Button className={"mx-auto w-fit"} onPress={() => setIsMenuOpen(false)}>
Lukk
</Button>
</NavbarMenu>
Expand Down
Loading