From 9adfe09133566ec85802df5df3ec6d3e8681fb36 Mon Sep 17 00:00:00 2001 From: Seth Etter Date: Tue, 6 Feb 2024 20:05:20 -0600 Subject: [PATCH] deno upgrade, and split up pages --- components/Card.tsx | 19 +++-- deno.json | 24 ++---- fresh.gen.ts | 35 +++++---- routes/_app.tsx | 7 +- routes/about.tsx | 72 ++++++++++++++++++ routes/contribute.tsx | 149 ++++++++++++++++++++++++++++++++++++ routes/index.tsx | 171 +++--------------------------------------- 7 files changed, 277 insertions(+), 200 deletions(-) create mode 100644 routes/about.tsx create mode 100644 routes/contribute.tsx diff --git a/components/Card.tsx b/components/Card.tsx index b8a0b02..e460eec 100644 --- a/components/Card.tsx +++ b/components/Card.tsx @@ -2,20 +2,29 @@ import { ComponentChildren, JSX } from "preact"; type CardProps = { title: string; - content?: string | JSX.Element; + content?: string | JSX.Element | (string | JSX.Element)[]; link?: string; link_text?: string; children?: ComponentChildren; }; -const Card = ( - { title, content, link, link_text = "", children }: CardProps, -) => { +const Card = ({ + title, + content, + link, + link_text = "", + children, +}: CardProps) => { return (

{title}

- {content &&

{content}

} + {content && !Array.isArray(content) && ( +

{content}

+ )} + {content && + Array.isArray(content) && + content.map((para) =>

{para}

)} {children}
{link && ( diff --git a/deno.json b/deno.json index cffd001..784bfe5 100644 --- a/deno.json +++ b/deno.json @@ -7,22 +7,13 @@ "preview": "deno run -A main.ts", "update": "deno run -A -r https://fresh.deno.dev/update ." }, - "lint": { - "rules": { - "tags": [ - "fresh", - "recommended" - ] - } - }, - "exclude": [ - "**/_fresh/*" - ], + "lint": { "rules": { "tags": ["fresh", "recommended"] } }, + "exclude": ["**/_fresh/*"], "imports": { - "$fresh/": "https://deno.land/x/fresh@1.5.2/", + "$fresh/": "https://deno.land/x/fresh@1.6.3/", "zod": "https://deno.land/x/zod@v3.22.4/mod.ts", - "preact": "https://esm.sh/preact@10.18.1", - "preact/": "https://esm.sh/preact@10.18.1/", + "preact": "https://esm.sh/preact@10.19.2", + "preact/": "https://esm.sh/preact@10.19.2/", "preact-render-to-string": "https://esm.sh/*preact-render-to-string@6.2.2", "@preact/signals": "https://esm.sh/*@preact/signals@1.2.1", "@preact/signals-core": "https://esm.sh/*@preact/signals-core@1.5.0", @@ -32,8 +23,5 @@ "tabler_icons/": "https://deno.land/x/tabler_icons_tsx@0.0.3/tsx/", "$std/": "https://deno.land/std@0.193.0/" }, - "compilerOptions": { - "jsx": "react-jsx", - "jsxImportSource": "preact" - } + "compilerOptions": { "jsx": "react-jsx", "jsxImportSource": "preact" } } diff --git a/fresh.gen.ts b/fresh.gen.ts index 3e5acd3..6ed7c9e 100644 --- a/fresh.gen.ts +++ b/fresh.gen.ts @@ -2,27 +2,32 @@ // This file SHOULD be checked into source version control. // This file is automatically updated during development when running `dev.ts`. -import * as $0 from "./routes/_404.tsx"; -import * as $1 from "./routes/_app.tsx"; -import * as $2 from "./routes/index.tsx"; -import * as $3 from "./routes/projects.tsx"; -import * as $$0 from "./islands/Footer.tsx"; -import * as $$1 from "./islands/Header.tsx"; -import * as $$2 from "./islands/IssuesList.tsx"; +import * as $_404 from "./routes/_404.tsx"; +import * as $_app from "./routes/_app.tsx"; +import * as $about from "./routes/about.tsx"; +import * as $contribute from "./routes/contribute.tsx"; +import * as $index from "./routes/index.tsx"; +import * as $projects from "./routes/projects.tsx"; +import * as $Footer from "./islands/Footer.tsx"; +import * as $Header from "./islands/Header.tsx"; +import * as $IssuesList from "./islands/IssuesList.tsx"; +import { type Manifest } from "$fresh/server.ts"; const manifest = { routes: { - "./routes/_404.tsx": $0, - "./routes/_app.tsx": $1, - "./routes/index.tsx": $2, - "./routes/projects.tsx": $3, + "./routes/_404.tsx": $_404, + "./routes/_app.tsx": $_app, + "./routes/about.tsx": $about, + "./routes/contribute.tsx": $contribute, + "./routes/index.tsx": $index, + "./routes/projects.tsx": $projects, }, islands: { - "./islands/Footer.tsx": $$0, - "./islands/Header.tsx": $$1, - "./islands/IssuesList.tsx": $$2, + "./islands/Footer.tsx": $Footer, + "./islands/Header.tsx": $Header, + "./islands/IssuesList.tsx": $IssuesList, }, baseUrl: import.meta.url, -}; +} satisfies Manifest; export default manifest; diff --git a/routes/_app.tsx b/routes/_app.tsx index a57f637..586c875 100644 --- a/routes/_app.tsx +++ b/routes/_app.tsx @@ -1,15 +1,16 @@ -import { AppProps } from "$fresh/server.ts"; +import { PageProps } from "$fresh/server.ts"; import Header from "../islands/Header.tsx"; import Footer from "../islands/Footer.tsx"; const nav = [ - { name: "Home", href: "/" }, + { name: "About", href: "/about" }, + { name: "Contribute", href: "/contribute" }, { name: "Projects", href: "/projects" }, { name: "Speak", href: "/speak" }, { name: "Donate", href: "https://devict.org/support" }, ]; -export default function App({ Component, route }: AppProps) { +export default function App({ Component, route }: PageProps) { return ( diff --git a/routes/about.tsx b/routes/about.tsx new file mode 100644 index 0000000..071d392 --- /dev/null +++ b/routes/about.tsx @@ -0,0 +1,72 @@ +import Card from "../components/Card.tsx"; + +export default function About() { + return ( +
+
+

+ Wichita's software developer community +

+

+ devICT is a volunteer-run community aiming to{" "} + educate, empower and connect software developers and + technologists in the Wichita, KS area. +

+
+

+ Whether you are new to the field, or an experienced engineer, devICT + offers multiple avenues for you to engage, contribute, and grow your + skillset as a technologist. +

+
+ +
+ {[ + { + title: `Who we are`, + content: [ + `We are a group of individuals who have a common interest in + software development.`, + + `Our skill levels vary greatly, from complete beginners to + seasoned veterans. We welcome anyone with a curiosity for + programming.`, + + `We strictly enforce a Code of Conduct to provide all of our + members a safe and inclusive environment.`, + ], + }, + { + title: `What we do`, + content: [ + `Members of devICT have one common goal: to be better at what + we do. Our events and services are aimed at achieving that.`, + + `To make that happen we have monthly events that are both + social and educational.`, + + `We also have an active Slack community which serves as a place + to connect and discuss with others in the community.`, + ], + }, + { + title: `Get involved!`, + content: [ + `Most of the time we are hanging out in Slack. To join, just + fill out this form.`, + + `Primarily, be sure to become a member on the Meetup page. Then + you will receive notifications for upcoming events.`, + + `You could also give a talk! Share the knowledge! We enjoy + learning about any development related topics. Contact a board + member if you are interested!`, + ], + }, + ].map((card) => ( + + ))} +
+
+ ); +} diff --git a/routes/contribute.tsx b/routes/contribute.tsx new file mode 100644 index 0000000..31d8011 --- /dev/null +++ b/routes/contribute.tsx @@ -0,0 +1,149 @@ +import { assert } from "$std/_util/asserts.ts"; +import Card from "../components/Card.tsx"; +import { fetchGitHubContributors } from "../lib/github.ts"; + +const DEVICT_REPOS: string[] = [ + "devict/job-board", + "devict/devict.org", + "devict/keeper", + "devict/hacktoberfest", + "devict/help", +]; + +export default async function Home() { + const ghToken = Deno.env.get("GITHUB_TOKEN"); + assert(ghToken); + + const contributors = await fetchGitHubContributors(ghToken, DEVICT_REPOS); + + return ( +
+
+

+ Wichita's software developer community +

+

+ devICT is a volunteer-run community aiming to{" "} + educate, empower and connect software developers and + technologists in the Wichita, KS area. +

+
+

+ Whether you are new to the field, or an experienced engineer, devICT + offers multiple avenues for you to engage, contribute, and grow your + skillset as a technologist. +

+
+ +

Why

+
+ {[ + { + title: `Build Skills`, + content: `Working on real-world projects exposes you to new technologies and best practices.`, + }, + { + title: `Portfolio Building`, + content: `Your contributions get recorded on GitHub, providing tangible proof of your skills.`, + }, + { + title: `Learning and Networking`, + content: `Interacting with the community offers immense learning opportunities and widens your professional network.`, + }, + { + title: `Giving Back`, + content: `By contributing, you help grow the local tech scene and create a richer environment for everyone involved.`, + }, + ].map((card) => ( + + ))} +
+ +

How

+
+ {[ + { + title: `Join the Conversation`, + content: ( + <> + Join us{" "} + + in Slack + {" "} + and jump into the conversation! Share what you're working on, + asking questions, and help others. + + ), + link: "https://slack.devict.org/", + link_text: "Sign Up", + }, + { + title: "Contribute to a Project", + content: ( + <> + Browse our{" "} + + active projects + + , find an issue that interests you, and jump right in! Plenty of + ways to contribute with or without coding. + + ), + link: "/projects", + link_text: "Get Coding", + }, + { + title: `Give a Talk or Workshop`, + content: `Share your knowledge and experience in a lightning talk or more comprehensive sessions.`, + link: "https://speak.devict.org/", + link_text: "Sign Up", + external: true, + }, + { + title: `Financial Support`, + content: `Donations help us keep the lights on and fund community events. Every bit counts!`, + }, + ].map((card) => ( + + ))} +
+

Contributors

+ +
+ {contributors.map((contributor) => ( +
+ +
+ ))} +
+
+ ); +} + +type ContributorsProps = { + login: string; + avatar_url: string; + html_url: string; +}; + +function Contributor({ login, avatar_url, html_url }: ContributorsProps) { + return ( + +
+ {login} +

{login}

+
+
+ ); +} diff --git a/routes/index.tsx b/routes/index.tsx index 5a1a67e..1b91fff 100644 --- a/routes/index.tsx +++ b/routes/index.tsx @@ -1,171 +1,24 @@ -import { assert } from "$std/_util/asserts.ts"; -import { JSX } from "preact"; -import Card from "../components/Card.tsx"; -import { fetchGitHubContributors, fetchGitHubMembers } from "../lib/github.ts"; - -const DEVICT_REPOS: string[] = [ - "devict/job-board", - "devict/devict.org", - "devict/keeper", - "devict/hacktoberfest", - "devict/help", -]; - -export default async function Home() { - const ghToken = Deno.env.get("GITHUB_TOKEN"); - assert(ghToken); - - const contributors = await fetchGitHubContributors(ghToken, DEVICT_REPOS); +// import Card from "../components/Card.tsx"; +export default function Home() { return (
-

+

+ Wichita's software developer community +

+

devICT is a volunteer-run community aiming to{" "} - educate, empower and connect{" "} - software developers and technologists in the{" "} - Wichita, KS area. + educate, empower and connect software developers and + technologists in the Wichita, KS area.


-

- Whether you are new to coding or an experienced developer, devICT - offers multiple avenues for you to engage, contribute, and grow. +

+ Whether you are new to the field, or an experienced engineer, devICT + offers multiple avenues for you to engage, contribute, and grow your + skillset as a technologist.

- -

Why Contribute?

-
- {[ - { - title: `Build Skills`, - content: - `Working on real-world projects exposes you to new technologies and best practices.`, - }, - { - title: `Portfolio Building`, - content: - `Your contributions get recorded on GitHub, providing tangible proof of your skills.`, - }, - { - title: `Learning and Networking`, - content: - `Interacting with the community offers immense learning opportunities and widens your professional network.`, - }, - { - title: `Giving Back`, - content: - `By contributing, you help grow the local tech scene and create a richer environment for everyone involved.`, - }, - ].map((card) => )} -
- -

How You Can Contribute

-
- {[ - { - title: `Join the Conversation`, - content: ( - <> - Join us{" "} - - in Slack - {" "} - and jump into the conversation! Share what you're working on, - asking questions, and help others. - - ), - link: "https://slack.devict.org/", - link_text: "Sign Up", - }, - { - title: "Contribute with Code", - content: ( - <> - Browse our{" "} - - active projects - , find an issue that interests you, and jump right in! - - ), - link: "/projects", - link_text: "Get Coding", - }, - { - title: "Contribute without Code", - content: ( - <> - Help us with documentation, design, or outreach efforts. Add - - clarity by asking questions on{" "} - - existing issues - , or contribute your ideas by filing new ones. - - ), - link: "/projects", - link_text: "Contribute", - }, - { - title: `Give a Talk or Workshop`, - content: - `Share your knowledge and experience in a lightning talk or more comprehensive sessions.`, - link: "https://speak.devict.org/", - link_text: "Sign Up", - external: true, - }, - { - title: `Financial Support`, - content: - `Donations help us keep the lights on and fund community events. Every bit counts!`, - }, - { - title: `Unique Contributions`, - content: - `Have a unique idea or skillset? We're all ears! Reach out to propose new ways to contribute.`, - }, - ].map((card) => )} -
-

Contributors

- -
- {contributors.map((contributor) => ( -
- -
- ))} -
); } - -type ContributorsProps = { - login: string; - avatar_url: string; - html_url: string; -}; - -function Contributor({ login, avatar_url, html_url }: ContributorsProps) { - return ( - -
- {login} -

{login}

-
-
- ); -} -- 2.51.2