diff options
| author | Stanisław Zagórowski <hasohasacz@gmail.com> | 2024-01-12 23:24:47 +0100 |
|---|---|---|
| committer | Stanisław Zagórowski <hasohasacz@gmail.com> | 2024-01-12 23:24:47 +0100 |
| commit | 6b068ccd9156de8515203d0000c3a2a8ecb9c5fb (patch) | |
| tree | 1bd9fd29b5fbe053bc376bf667d294460846a59e /front/src/components/project.tsx | |
| parent | 329193f0d1c8d710cb7f63e61b19e574dfdde4c4 (diff) | |
luax: just reluax
Diffstat (limited to 'front/src/components/project.tsx')
| -rw-r--r-- | front/src/components/project.tsx | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/front/src/components/project.tsx b/front/src/components/project.tsx deleted file mode 100644 index cd5cb89..0000000 --- a/front/src/components/project.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import Carousel from "./carousel"; -import './project.css'; - -enum ProjectType { - GAME = "game", - PROJECT = "project", -} - -export enum ProjectTech { - CSHARP = "csharp", - RUST = "rust", - C = "c", - CPP = "cpp", - JAVASCRIPT = "javascript", - TYPESCRIPT = "typescript", - HTML = "html", - CSS = "css", - - PREACT = "preact", - UNITY = "unity", - GODOT = "godot", - MONOGAME = "monogame", -} - -export enum ProjectTarget { - WEB = "html5", - WINDOWS = "windows", - LINUX = "linux", - MACOS = "macos", - ANDROID = "android", - XBOX = "xbox", - PLAYSTATION = "playstation", - SWITCH = "switch", - HYPRLAND = "hyprland", -} - -export interface ProjectDescriptor { - name: string; - name_normalized: string; - type: ProjectType; - link: string; - tech: ProjectTech[]; - targets: ProjectTarget[]; - images: string[]; - description: string; -} - -function getProjectImageLink(project: ProjectDescriptor, image: string) { - return `assets/${project.type}s/${project.name_normalized}/${image}`; -} - -function getProjectTechIconLink(tech: ProjectTech) { - return `assets/images/${tech}.png`; -} - -function getProjectTargetIconLink(target: ProjectTarget) { - return `assets/images/${target}.png`; -} - -export function Project(props: ProjectDescriptor) { - return ( - <div class="project"> - <div class="project-title"><a href={props.link}>{props.name}</a></div> - <div class="project-info"> - <div class="icon-row"> - <div class="icon-text">Made using</div> - <div class="icon-container"> - {props.tech.map((tech) => ( - <img class="grow icon" src={getProjectTechIconLink(tech)} /> - ))} - </div> - </div> - <div class="icon-row"> - <div class="icon-text">Available on</div> - <div class="icon-container"> - {props.targets.map((target) => ( - <img class="grow icon" src={getProjectTargetIconLink(target)} /> - ))} - </div> - </div> - <hr /> - <div class="project-description"> - { - // use description as html - <div dangerouslySetInnerHTML={{ __html: props.description }} /> - } - </div> - </div> - {props.images && props.images.length > 0 && - <Carousel> - {props.images.map((image) => ( - <img class="project-image" src={getProjectImageLink(props, image)} /> - ))} - </Carousel> - } - </div> - ); -} |
