├── src
└── app
│ ├── globals.css
│ ├── favicon.ico
│ ├── events
│ └── [slug]
│ │ └── page.tsx
│ ├── add-event
│ └── page.tsx
│ ├── page.tsx
│ ├── layout.tsx
│ ├── components
│ ├── SearchResultsList.tsx
│ ├── SearchResultCard.tsx
│ ├── Calendar.tsx
│ ├── CalendarNav.tsx
│ ├── SearchBox.tsx
│ ├── SearchPagination.tsx
│ ├── Events.tsx
│ ├── EventDetail.tsx
│ ├── ImportEvent.tsx
│ ├── CalendarGrid.tsx
│ ├── Header.tsx
│ ├── Footer.tsx
│ └── AddEvent.tsx
│ ├── api
│ ├── feed.ics
│ │ └── route.ts
│ └── search
│ │ └── route.ts
│ ├── actions.ts
│ └── search
│ └── page.tsx
├── .vscode
└── settings.json
├── postcss.config.mjs
├── public
├── vercel.svg
├── window.svg
├── file.svg
├── globe.svg
└── next.svg
├── tailwind.config.js
├── next.config.ts
├── lib
├── prisma.ts
├── types.ts
├── zod.ts
├── hash.ts
├── dates.ts
└── db.ts
├── prisma
└── schema.prisma
├── eslint.config.mjs
├── .gitignore
├── tsconfig.json
├── README.md
├── package.json
└── hooks
└── useSearch.ts
/src/app/globals.css:
--------------------------------------------------------------------------------
1 | @import "tailwindcss";
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "typescript.tsdk": "node_modules/typescript/lib"
3 | }
--------------------------------------------------------------------------------
/src/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Flite999/techpdx-calendar/HEAD/src/app/favicon.ico
--------------------------------------------------------------------------------
/postcss.config.mjs:
--------------------------------------------------------------------------------
1 | const config = {
2 | plugins: {
3 | "@tailwindcss/postcss": {},
4 | },
5 |
6 | }
7 |
8 | export default config;
9 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | theme: {
3 | extend: {
4 | fontFamily: {
5 | reddit: ['Reddit Mono', 'monospace'],
6 | },
7 | },
8 | },
9 | };
10 |
--------------------------------------------------------------------------------
/next.config.ts:
--------------------------------------------------------------------------------
1 | import type { NextConfig } from "next";
2 |
3 | const nextConfig: NextConfig = {
4 | /* config options here */
5 | turbopack: {
6 | root: __dirname,
7 | },
8 | };
9 |
10 | export default nextConfig;
11 |
--------------------------------------------------------------------------------
/src/app/events/[slug]/page.tsx:
--------------------------------------------------------------------------------
1 | import EventDetail from '@/app/components/EventDetail'
2 |
3 | export default async function Page({
4 | params,
5 | }: {
6 | params: Promise<{ slug: string }>
7 | }) {
8 | const { slug } = await params
9 | return (
10 |
20 | Current supported import formats: iCalendar format (.ics) 21 |
22 |23 | For meetup events, copy the .ics hyperlink and paste here. 24 |
25 |48 | Results for {query} 49 | {data && ( 50 | 51 | {' - '} 52 | {data.pagination.totalCount} {data.pagination.totalCount === 1 ? 'result' : 'results'} found 53 | 54 | )} 55 |
56 |Searching...
63 |{error}
72 |