FundingRecomendations
unknown
plain_text
3 years ago
12 kB
9
Indexable
import { useContext, useState } from "react"
import { DiagnosticContext, showFundingRecommendations } from "../../helpers/functions"
import { categories } from "../../services/londi-constants"
import Questionnaire from "../Questionnaire"
import Tabs from "../Tabs"
const FundingRecomendations = () => {
const [readingRecomendations, setReadingRecomendations] = useState(false)
const [writingRecomendations, setWritingRecomendations] = useState(false)
const [countingRecomendations, setCountingRecomendations] = useState(false)
const [feedback, setFeedback] = useState(false)
const { state } = useContext(DiagnosticContext);
return (
<>
<Tabs />
<div className="flex font-montserrat items-center flex-col justify-center m-auto">
<h1 className="text-mainBlue font-semibold text-3xl mt-10 sm:mt-0 md:text-5xl mb-5">Förderempfehlungen</h1>
<div className="flex text-xl space-y-5 flex-col w-11/12 md:w-2/3 mt-2">
<p>Wir empfehlen Ihnen die folgenden Förderprogramme.<br />(Informationen über die Rangreihe der empfohlenen Förderprogramme finden Sie hier.) </p>
<p>Für zusätzliche Informationen zu den jeweiligen Förderprogrammen klicken Sie bitte auf die dazugehörige Internetadresse.</p>
</div>
<div className="text-lg md:text-xl space-y-2 mt-8">
<div className={`flex items-center justify-center`}>
<button onClick={() => setReadingRecomendations(!readingRecomendations)}>
{readingRecomendations ? <kbd className="arrow-icon">
<svg className="icon-size" aria-hidden="true" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M310.6 246.6l-127.1 128C176.4 380.9 168.2 384 160 384s-16.38-3.125-22.63-9.375l-127.1-128C.2244 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75S319.8 237.5 310.6 246.6z" /></svg>
</kbd> : <kbd className="inline-flex items-center text-mainBlue rounded-lg">
<svg className="icon-size" aria-hidden="true" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M118.6 105.4l128 127.1C252.9 239.6 256 247.8 256 255.1s-3.125 16.38-9.375 22.63l-128 127.1c-9.156 9.156-22.91 11.9-34.88 6.943S64 396.9 64 383.1V128c0-12.94 7.781-24.62 19.75-29.58S109.5 96.23 118.6 105.4z" /></svg>
</kbd>}
</button>
<p className="title">Förderempfehlungen Lesen:</p></div>
{readingRecomendations &&
showFundingRecommendations(state).map((el) => {
return el.category === categories.Reading && el.results.map((res => {
const linkShort = res.link.substring(0, 8);
const link = linkShort === 'https://' ? res?.link.slice(8) : res.link
return (
<div key={res.id} className="flex w-full items-center flex-col">
<div className="flex flex-col border border-gray-400 w-full sm:w-4/5">
<div className=" flex justify-between border-gray-400">
<div className="flex flex-col">
<div className='flex flex-col pt-1 pl-2 text-sm p-1 text-mainBlue'>
<p>{res.title}</p>
<a href={res.link}>{link}</a>
</div>
<div className="text-sm flex-wrap flex pb-2 pt-1 mx-2">
{res.subtitle && <p>{res?.subtitle},</p>}
{res.authors && <p className="flex ml-1">{res.authors.map(el => {
return <p className="ml-1">{el},</p>
})}</p>}
{res.year && <p className="ml-1">{res?.year},</p>}
{res.publisher && <p className="ml-1">{res?.publisher}</p>}
</div>
</div>
</div>
</div>
</div>
)
}))
})
}
<div className="flex items-center justify-center">
<button onClick={() => setWritingRecomendations(!writingRecomendations)}>
{writingRecomendations ? <kbd className="arrow-icon">
<svg className="icon-size" aria-hidden="true" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M310.6 246.6l-127.1 128C176.4 380.9 168.2 384 160 384s-16.38-3.125-22.63-9.375l-127.1-128C.2244 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75S319.8 237.5 310.6 246.6z" /></svg>
</kbd> : <kbd className="inline-flex items-center text-mainBlue rounded-lg">
<svg className="icon-size" aria-hidden="true" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M118.6 105.4l128 127.1C252.9 239.6 256 247.8 256 255.1s-3.125 16.38-9.375 22.63l-128 127.1c-9.156 9.156-22.91 11.9-34.88 6.943S64 396.9 64 383.1V128c0-12.94 7.781-24.62 19.75-29.58S109.5 96.23 118.6 105.4z" /></svg>
</kbd>}
</button>
<p className="title">Förderempfehlungen Schreiben:</p></div>
{writingRecomendations &&
showFundingRecommendations(state).map((el) => {
return el.category === categories.Writing && el.results.map((res => {
const linkShort = res.link.substring(0, 8);
const link = linkShort === 'https://' ? res?.link.slice(8) : res.link
return (
<div key={res.id} className="flex w-full items-center flex-col">
<div className="flex flex-col border border-gray-400 w-full sm:w-4/5">
<div className=" flex justify-between border-gray-400">
<div className="flex flex-col">
<div className='flex flex-col pt-1 pl-2 text-sm p-1 text-mainBlue'>
<p>{res.title}</p>
<a href={res.link}>{link}</a>
</div>
<div className="text-sm flex-wrap flex pb-2 pt-1 mx-2">
{res.subtitle && <p>{res?.subtitle},</p>}
{res.authors && <p className="flex ml-1">{res.authors.map(el => {
return <p className="ml-1">{el},</p>
})}</p>}
{res.year && <p className="ml-1">{res?.year},</p>}
{res.publisher && <p className="ml-1">{res?.publisher}</p>}
</div>
</div>
</div>
</div>
</div>
)
}))
})
}
<div className="flex items-center justify-center">
<button onClick={() => setCountingRecomendations(!countingRecomendations)}>
{countingRecomendations ? <kbd className="arrow-icon">
<svg className="icon-size" aria-hidden="true" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M310.6 246.6l-127.1 128C176.4 380.9 168.2 384 160 384s-16.38-3.125-22.63-9.375l-127.1-128C.2244 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75S319.8 237.5 310.6 246.6z" /></svg>
</kbd> : <kbd className="inline-flex items-center text-mainBlue rounded-lg">
<svg className="icon-size" aria-hidden="true" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M118.6 105.4l128 127.1C252.9 239.6 256 247.8 256 255.1s-3.125 16.38-9.375 22.63l-128 127.1c-9.156 9.156-22.91 11.9-34.88 6.943S64 396.9 64 383.1V128c0-12.94 7.781-24.62 19.75-29.58S109.5 96.23 118.6 105.4z" /></svg>
</kbd>}
</button>
<p className="title">Förderempfehlungen Rechnen:</p></div>
{countingRecomendations &&
showFundingRecommendations(state).map((el) => {
return el.category === categories.Math && el.results.map((res => {
const linkShort = res.link.substring(0, 8);
const link = linkShort === 'https://' ? res?.link.slice(8) : res.link
return (
<div key={res.id} className="flex w-full items-center flex-col">
<div className="flex flex-col border border-gray-400 w-full sm:w-4/5">
<div className=" flex justify-between border-gray-400">
<div className="flex flex-col">
<div className='flex flex-col pt-1 pl-2 text-sm p-1 text-mainBlue'>
<p>{res.title}</p>
<a href={res.link}>{link}</a>
</div>
<div className="text-sm flex-wrap flex pb-2 pt-1 mx-2">
{res.subtitle && <p>{res?.subtitle},</p>}
{res.authors && <p className="flex ml-1">{res.authors.map(el => {
return <p className="ml-1">{el},</p>
})}</p>}
{res.year && <p className="ml-1">{res?.year},</p>}
{res.publisher && <p className="ml-1">{res?.publisher}</p>}
</div>
</div>
</div>
</div>
</div>
)
}))
})}
</div>
<button onClick={() => setFeedback(true)} className="text-white font-semibold bg-mainBlue w-56 mb-8 h-10 md:w-72 text-lg md:text-2xl md:h-14 my-10">Weiter zur Übersicht
</button>
{feedback && <Questionnaire />}
<p className="text-lg md:text-xl mb-10 mt-3">Auf der nächsten Seite können alle Ergebnisse als PDF ausgedruckt werden.</p>
</div>
</>
)
}
export default FundingRecomendationsEditor is loading...