Compare commits
	
		
			4 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 7bdfdc2fb1 | |||
| e1da756b5c | |||
| c0e15bccf3 | |||
| 7d9ca6bdd5 | 
| @@ -13,7 +13,7 @@ export default function Bingo({size, items}: Props){ | |||||||
| 		rows[i] = activeItems.slice(i * size, (i + 1) * size); | 		rows[i] = activeItems.slice(i * size, (i + 1) * size); | ||||||
| 	} | 	} | ||||||
| 	return( | 	return( | ||||||
| 		<table className='w-1/2 table table-xs sm:table-sm md:table-md bg-primary text-primary-content m-auto'> | 		<table className='table table-xs bg-primary text-primary-content m-auto'> | ||||||
| 		<tbody> | 		<tbody> | ||||||
| 		{rows.map((item, index) => <BingoRow key={index} items={item}/>)} | 		{rows.map((item, index) => <BingoRow key={index} items={item}/>)} | ||||||
| 		</tbody> | 		</tbody> | ||||||
|   | |||||||
| @@ -14,17 +14,18 @@ function FisherYatesShuffle(array:string[]):string[]{ | |||||||
| 	return array; | 	return array; | ||||||
| } | } | ||||||
|  |  | ||||||
| export default function BingoController({buzzwords} : {buzzwords?: string[]}){ | export default function BingoController({buzzwords, maxSize} : {buzzwords?: string[], maxSize?: number}){ | ||||||
| 	const [size, setSize] = React.useState(5); | 	if(maxSize == undefined) maxSize = 5; | ||||||
|  | 	const [size, setSize] = React.useState(maxSize!); | ||||||
| 	if(buzzwords == undefined || buzzwords.length < 1) buzzwords = ["Cloud", "Cyber-[Something]", "Distrupt[ive]", "AI", "Meta [Something]", "Gamification", "Web 2.0/3.0", "Industry 4.0", "Internet of Things", "Multiexperience", "Big Data", "Crypto", "[Something] as a service", "Emerging [Something]", "Streamline", "Ecosystem", "Leverage", "Outside the Box", "Pivot", "Strategic", "Agile", "Smart Tech", "Data Warehouse", "Actionable Insights", "Holistic Approach", "Digital Transformation", "Growth Hacking"]; | 	if(buzzwords == undefined || buzzwords.length < 1) buzzwords = ["Cloud", "Cyber-[Something]", "Distrupt[ive]", "AI", "Meta [Something]", "Gamification", "Web 2.0/3.0", "Industry 4.0", "Internet of Things", "Multiexperience", "Big Data", "Crypto", "[Something] as a service", "Emerging [Something]", "Streamline", "Ecosystem", "Leverage", "Outside the Box", "Pivot", "Strategic", "Agile", "Smart Tech", "Data Warehouse", "Actionable Insights", "Holistic Approach", "Digital Transformation", "Growth Hacking"]; | ||||||
| 	const [items, setItems] = React.useState(buzzwords); | 	const [items, setItems] = React.useState(buzzwords); | ||||||
| 	const sizeError = (items.length < size); | 	const sizeError = (items.length < size); | ||||||
| 	return( | 	return( | ||||||
| 		<> | 		<> | ||||||
| 		<div className="w-3/4 flex flex-col m-auto gap-4"> | 		<div className="w-full md:w-3/4 flex flex-col m-auto gap-4"> | ||||||
| 		<Bingo size={size} items={items}/> | 		<Bingo size={size} items={items}/> | ||||||
| 		<form className="w-1/3 m-auto"> | 		<form className="w-1/3 m-auto"> | ||||||
| 		<input type="range" min={3} max={5} value={size} className="range range-xs sm:range-sm md:range-md range-secondary" step={1} onChange={({target:{value:s}}) => setSize(+s)}/> | 		<input type="range" min={3} max={maxSize!} value={size} className="range range-xs sm:range-sm md:range-md range-secondary" step={1} onChange={({target:{value:s}}) => setSize(+s)}/> | ||||||
| 		<div className="w-full flex justify-between text-sm px-2 mb-2"> | 		<div className="w-full flex justify-between text-sm px-2 mb-2"> | ||||||
| 			<span>3x3</span> | 			<span>3x3</span> | ||||||
| 			<span>4x4</span> | 			<span>4x4</span> | ||||||
|   | |||||||
| @@ -9,6 +9,6 @@ export default function BingoItem({text}: Props){ | |||||||
| 	const [clicked, setClicked] = React.useState(false); | 	const [clicked, setClicked] = React.useState(false); | ||||||
|  |  | ||||||
| 	return( | 	return( | ||||||
| 		<td><a className={clsx("btn btn-xs sm:btn-sm md:btn-md w-full", {"btn-ghost":(!clicked)}, {"btn-accent":clicked})} onClick={() => setClicked(!clicked)}>{text}</a></td> | 		<td><a className={clsx("btn btn-xs w-full overflow-hidden", {"btn-ghost":(!clicked)}, {"btn-accent":clicked})} onClick={() => setClicked(!clicked)}>{text}</a></td> | ||||||
| 	); | 	); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -19,6 +19,7 @@ export default function ThemeSwitcher(){ | |||||||
| 			<li><a onClick={() => setTheme("synthwave")}><DarkIcon/>Synthwave</a></li> | 			<li><a onClick={() => setTheme("synthwave")}><DarkIcon/>Synthwave</a></li> | ||||||
| 			<li><a onClick={() => setTheme("coffee")}><DarkIcon/>Coffee</a></li> | 			<li><a onClick={() => setTheme("coffee")}><DarkIcon/>Coffee</a></li> | ||||||
| 			<li><a onClick={() => setTheme("dim")}><DarkIcon/>Dim</a></li> | 			<li><a onClick={() => setTheme("dim")}><DarkIcon/>Dim</a></li> | ||||||
|  | 			<li><a onClick={() => setTheme("dielinke")}>Die Linke</a></li> | ||||||
| 		</ul> | 		</ul> | ||||||
| 	); | 	); | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								src/app/lpt/page.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/app/lpt/page.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | import BingoController from '../components/bingocontroller' | ||||||
|  |  | ||||||
|  | export default function Home(){ | ||||||
|  | 	const buzzwords = ["\"Ohne Frieden ist alles nichts\"", "Wahlordnung muss mehrfach erklärt werden", "Pizza ist da", "Stefan pöbelt", "Mareike pöbelt zurück", "Jemand überzieht die Redezeit", "Machentanz knallt die Tür zu", "GO-Antrag zur Pause", "GO-Antrag zum GO-Antrag", "Doppelte Für-/Gegenreden", "Rita Krüger redet zu Wagenknecht", "Ins Mikrofon schreien", "Karl-Marx-Zitate", "Rosa-Luxemburg-Zitate", "\"Es braucht die Linke\"", "\"In der Tradition von Rosa Luxemburg und Karl Liebknecht\"", "KW sagt \"Ruhe im Saal\""]; | ||||||
|  | 	return( | ||||||
|  | 		<BingoController buzzwords={buzzwords} maxSize={4} /> | ||||||
|  | 	); | ||||||
|  | } | ||||||
| @@ -7,9 +7,21 @@ const config: Config = { | |||||||
| 	}, | 	}, | ||||||
| 	plugins: [require("daisyui")], | 	plugins: [require("daisyui")], | ||||||
| 	daisyui: { | 	daisyui: { | ||||||
| 		themes: ["light", "dark", "synthwave", "cyberpunk", "valentine", "pastel", "aqua", "coffee", "dim"] | 		themes: [ | ||||||
|  | 			{ | ||||||
|  | 				dielinke: { | ||||||
|  | 					"primary": "#ff0000", | ||||||
|  | 					"accent": "#6f003c", | ||||||
|  | 					"secondary": "#004b5b", | ||||||
|  | 					"neutral": "#6f003c", | ||||||
|  | 					"base-100": "#f8f8f8", | ||||||
|  |  | ||||||
|  | 					"--rounded-box": "0", | ||||||
|  | 					"--rounded-btn": "0.75rem" | ||||||
|  | 				} | ||||||
|  | 			},"light", "dark", "synthwave", "cyberpunk", "valentine", "pastel", "aqua", "coffee", "dim" | ||||||
|  | 		] | ||||||
| 	} | 	} | ||||||
| }; | }; | ||||||
|  |  | ||||||
| export default config; | export default config; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user