├── src ├── @types │ ├── index.d.ts │ └── [event_id].d.ts ├── pages │ ├── img │ │ ├── yahoo.png │ │ ├── reset.svg │ │ ├── official_mobile.svg │ │ ├── mail.svg │ │ ├── calendar.svg │ │ ├── save.svg │ │ ├── password.svg │ │ ├── icon_twitter.svg │ │ ├── google.svg │ │ └── line.svg │ ├── api │ │ ├── auth.ts │ │ ├── email.ts │ │ ├── recaptcha.ts │ │ ├── sessionLogout.ts │ │ ├── login.ts │ │ ├── session.ts │ │ ├── contact.ts │ │ └── ogp.ts │ ├── _document.tsx │ ├── _app.tsx │ ├── test.tsx │ ├── kinakomochi │ │ ├── index.tsx │ │ ├── contents │ │ │ ├── index.tsx │ │ │ ├── csv.tsx │ │ │ ├── register.tsx │ │ │ └── [content_id].tsx │ │ ├── events │ │ │ ├── index.tsx │ │ │ ├── csv.tsx │ │ │ └── register.tsx │ │ └── items │ │ │ └── [event_id].tsx │ ├── privacy.tsx │ ├── contact │ │ └── complete.tsx │ └── index.tsx ├── components │ ├── hooks │ │ ├── event │ │ │ ├── useEffectSelect.ts │ │ │ ├── useTotalPrice.ts │ │ │ ├── useItems.ts │ │ │ ├── useCsvContents.tsx │ │ │ └── useGroups.ts │ │ └── admin │ │ │ ├── useCsvContents.tsx │ │ │ ├── useCsvEvents.tsx │ │ │ └── useCsvItems.tsx │ ├── modal │ │ ├── contents │ │ │ ├── Message.tsx │ │ │ ├── ModalButton.tsx │ │ │ ├── Confirmation.tsx │ │ │ ├── Reset.tsx │ │ │ ├── Place.tsx │ │ │ ├── Memo.tsx │ │ │ └── Date.tsx │ │ ├── ClientOnlyPortal.tsx │ │ ├── Loading.tsx │ │ ├── AddModalContent.tsx │ │ ├── Modal.tsx │ │ └── ModalContext.tsx │ ├── view │ │ ├── title.tsx │ │ ├── Spacer.tsx │ │ ├── top │ │ │ ├── EventListTitle.tsx │ │ │ └── Topic.tsx │ │ ├── BoxLine.tsx │ │ ├── BoxLineText.tsx │ │ ├── LinkButton.tsx │ │ ├── Box.tsx │ │ ├── BoxGrid.tsx │ │ ├── search │ │ │ ├── NoSearchResult.tsx │ │ │ ├── Pagination.tsx │ │ │ └── SearchResult.tsx │ │ ├── Topic.tsx │ │ └── EventList.tsx │ ├── form │ │ ├── InputLabel.tsx │ │ ├── InputError.tsx │ │ ├── InputNotes.tsx │ │ ├── InputTextArea.tsx │ │ ├── InputText.tsx │ │ ├── InputText2.tsx │ │ ├── SubmitButton.tsx │ │ ├── SocialButton.tsx │ │ └── SelectDate.tsx │ ├── ScrollTopButton.tsx │ ├── Layout.tsx │ ├── supabase.tsx │ ├── ScrollAnimation.tsx │ ├── Meta.tsx │ ├── Utils.tsx │ ├── admin │ │ ├── login.tsx │ │ └── Header.tsx │ ├── Footer.tsx │ ├── Header.tsx │ ├── CsvContents.tsx │ ├── Validation.ts │ ├── types.ts │ ├── event │ │ └── Sort.tsx │ ├── db │ │ └── SearchEvent.ts │ └── SearchEventForm.tsx └── styles │ ├── Layout.module.css │ ├── Privacy.module.css │ ├── Contact.module.css │ ├── Button_top.module.css │ ├── components │ ├── SocialButton.module.css │ ├── view.module.css │ ├── eventList.module.css │ ├── SearchEventForm.module.css │ └── form.module.css │ ├── globals.css │ ├── ScrollButton.module.css │ ├── Footer.module.css │ ├── Header.module.css │ └── Admin.module.css ├── public ├── favicon.ico ├── images │ ├── ogp.png │ ├── iphone.png │ ├── ogp.23.png │ ├── ogp2.png │ ├── ogp5.png │ ├── ogp9.png │ ├── yahoo.png │ ├── background.png │ ├── background2.png │ ├── background3.png │ ├── background4.png │ ├── background5.png │ ├── background6.png │ ├── background7.png │ ├── background8.png │ ├── background9.png │ ├── background11.png │ ├── newlist.svg │ ├── check.svg │ ├── delete.svg │ ├── preview.svg │ ├── email.svg │ ├── memo.svg │ ├── screenshot.svg │ ├── screenshot2.svg │ ├── password.svg │ ├── search.svg │ ├── place.svg │ ├── name.svg │ ├── twitter.svg │ ├── google.svg │ └── line.svg ├── fonts │ ├── kosugi.ttf │ ├── kosugi2.woff │ ├── D-DINCondensed.otf │ ├── FuturaPTMedium.otf │ ├── D-DINCondensed.woff2 │ ├── FuturaPTMedium.woff │ ├── D-DINCondensed-Bold.otf │ ├── KosugiMaru-Regular.ttf │ ├── NotoSansJP-Regular.otf │ ├── FuturaPTMediumOblique.otf │ ├── NotoSansCJKjp-Bold.min.ttf │ └── NotoSansCJKjp-Bold.min.woff └── vercel.svg ├── .babelrc ├── postcss.config.js ├── next.config.js ├── next-env.d.ts ├── tailwind.config.js ├── .eslintrc.json ├── .gitignore ├── tsconfig.json ├── package.json └── README.md /src/@types/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.svg' 2 | -------------------------------------------------------------------------------- /src/@types/[event_id].d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.svg' 2 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/favicon.ico -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["next/babel"], 3 | "plugins": ["inline-react-svg"] 4 | } 5 | -------------------------------------------------------------------------------- /public/images/ogp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/ogp.png -------------------------------------------------------------------------------- /public/fonts/kosugi.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/kosugi.ttf -------------------------------------------------------------------------------- /public/images/iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/iphone.png -------------------------------------------------------------------------------- /public/images/ogp.23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/ogp.23.png -------------------------------------------------------------------------------- /public/images/ogp2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/ogp2.png -------------------------------------------------------------------------------- /public/images/ogp5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/ogp5.png -------------------------------------------------------------------------------- /public/images/ogp9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/ogp9.png -------------------------------------------------------------------------------- /public/images/yahoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/yahoo.png -------------------------------------------------------------------------------- /src/pages/img/yahoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/src/pages/img/yahoo.png -------------------------------------------------------------------------------- /public/fonts/kosugi2.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/kosugi2.woff -------------------------------------------------------------------------------- /public/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/background.png -------------------------------------------------------------------------------- /public/images/background2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/background2.png -------------------------------------------------------------------------------- /public/images/background3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/background3.png -------------------------------------------------------------------------------- /public/images/background4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/background4.png -------------------------------------------------------------------------------- /public/images/background5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/background5.png -------------------------------------------------------------------------------- /public/images/background6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/background6.png -------------------------------------------------------------------------------- /public/images/background7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/background7.png -------------------------------------------------------------------------------- /public/images/background8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/background8.png -------------------------------------------------------------------------------- /public/images/background9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/background9.png -------------------------------------------------------------------------------- /public/fonts/D-DINCondensed.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/D-DINCondensed.otf -------------------------------------------------------------------------------- /public/fonts/FuturaPTMedium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/FuturaPTMedium.otf -------------------------------------------------------------------------------- /public/images/background11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/images/background11.png -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/fonts/D-DINCondensed.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/D-DINCondensed.woff2 -------------------------------------------------------------------------------- /public/fonts/FuturaPTMedium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/FuturaPTMedium.woff -------------------------------------------------------------------------------- /public/fonts/D-DINCondensed-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/D-DINCondensed-Bold.otf -------------------------------------------------------------------------------- /public/fonts/KosugiMaru-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/KosugiMaru-Regular.ttf -------------------------------------------------------------------------------- /public/fonts/NotoSansJP-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/NotoSansJP-Regular.otf -------------------------------------------------------------------------------- /public/fonts/FuturaPTMediumOblique.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/FuturaPTMediumOblique.otf -------------------------------------------------------------------------------- /public/fonts/NotoSansCJKjp-Bold.min.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/NotoSansCJKjp-Bold.min.ttf -------------------------------------------------------------------------------- /public/fonts/NotoSansCJKjp-Bold.min.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goodsList/goodslist/main/public/fonts/NotoSansCJKjp-Bold.min.woff -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | module.exports = { 3 | reactStrictMode: true, 4 | eslint: { 5 | ignoreDuringBuilds: true, 6 | }, 7 | } 8 | -------------------------------------------------------------------------------- /src/pages/api/auth.ts: -------------------------------------------------------------------------------- 1 | import { supabase } from './../../components/supabase' 2 | 3 | export default function handler(req: any, res: any) { 4 | supabase.auth.api.setAuthCookie(req, res) 5 | } 6 | -------------------------------------------------------------------------------- /public/images/newlist.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/check.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/hooks/event/useEffectSelect.ts: -------------------------------------------------------------------------------- 1 | import { useEffect, useLayoutEffect } from 'react' 2 | 3 | export const useEffectSelect = () => { 4 | return typeof window !== 'undefined' ? useLayoutEffect : useEffect 5 | } 6 | export default useEffectSelect 7 | -------------------------------------------------------------------------------- /public/images/delete.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/pages/img/reset.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | // NOTE: This file should not be edited 6 | // see https://nextjs.org/docs/basic-features/typescript for more information. 7 | -------------------------------------------------------------------------------- /public/images/preview.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/pages/img/official_mobile.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/email.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/pages/img/mail.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/styles/Layout.module.css: -------------------------------------------------------------------------------- 1 | .main_container { 2 | width: 100%; 3 | margin: 0; 4 | text-align: center; 5 | } 6 | 7 | .main { 8 | max-width: 800px; 9 | min-width: 320px; 10 | margin: auto; 11 | /* background-color: #faf9f7; */ 12 | background-color: #fff; 13 | } 14 | -------------------------------------------------------------------------------- /src/components/modal/contents/Message.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../../../styles/Modal.module.css' 2 | 3 | const Message = (props: any) => { 4 | return ( 5 | <> 6 |
{props.message}
7 | 8 | ) 9 | } 10 | 11 | export default Message 12 | -------------------------------------------------------------------------------- /public/images/memo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/view/title.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../../styles/components/view.module.css' 2 | 3 | const Title = (props: any) => { 4 | return ( 5 |
6 | {props.title} 7 | 8 |
9 | ) 10 | } 11 | 12 | export default Title 13 | -------------------------------------------------------------------------------- /src/pages/img/calendar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/view/Spacer.tsx: -------------------------------------------------------------------------------- 1 | type Props = { 2 | padding: string 3 | } 4 | 5 | const Spacer = ({ padding }: Props) => { 6 | const style = { 7 | margin: 0, 8 | width: '100%', 9 | padding: padding, 10 | } 11 | 12 | return
13 | } 14 | 15 | export default Spacer 16 | -------------------------------------------------------------------------------- /src/components/view/top/EventListTitle.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../../../styles/Home.module.css' 2 | 3 | const EventListTitle = (props: any) => { 4 | return ( 5 |

6 | {props.title} 7 |

8 | ) 9 | } 10 | 11 | export default EventListTitle 12 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | mode: 'jit', //JITモードを有効化 3 | // パージの対象ファイルを設定 4 | purge: ['./src/pages/**/*.{js,ts,jsx,tsx}', './src/components/**/*.{js,ts,jsx,tsx}'], 5 | darkMode: false, // or 'media' or 'class' 6 | content: [], 7 | theme: { 8 | extend: {}, 9 | }, 10 | plugins: [], 11 | } 12 | -------------------------------------------------------------------------------- /src/components/form/InputLabel.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../../styles/components/form.module.css' 2 | 3 | const InputLabel = (props: any) => { 4 | return ( 5 | 8 | ) 9 | } 10 | 11 | export default InputLabel 12 | -------------------------------------------------------------------------------- /src/components/view/BoxLine.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../../styles/components/view.module.css' 2 | import { ReactNode } from 'react' 3 | 4 | type Props = { 5 | children: ReactNode 6 | } 7 | 8 | const BoxLine = ({ children }: Props) => { 9 | return
{children}
10 | } 11 | 12 | export default BoxLine 13 | -------------------------------------------------------------------------------- /public/images/screenshot.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/form/InputError.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../../styles/components/form.module.css' 2 | 3 | const InputError = (props: any) => { 4 | return ( 5 |

0 ? styles.input_error_active : styles.input_error}> 6 | {props.error} 7 |

8 | ) 9 | } 10 | 11 | export default InputError 12 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "next", 4 | "next/core-web-vitals", 5 | "prettier", 6 | "plugin:import/recommended", 7 | "plugin:import/warnings" 8 | ], 9 | "rules": { 10 | "import/order": [ 11 | "error", 12 | { 13 | "alphabetize": { 14 | "order": "asc" 15 | } 16 | } 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/components/view/BoxLineText.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../../styles/components/view.module.css' 2 | import { ReactNode } from 'react' 3 | 4 | type Props = { 5 | children: ReactNode 6 | } 7 | 8 | const BoxLineText = ({ children }: Props) => { 9 | return
{children}
10 | } 11 | 12 | export default BoxLineText 13 | -------------------------------------------------------------------------------- /src/pages/img/save.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/screenshot2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/view/LinkButton.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../../styles/components/view.module.css' 2 | import Link from 'next/link' 3 | 4 | const LinkButton = (props: any) => { 5 | return ( 6 | 7 | 8 | 9 | 10 | 11 | ) 12 | } 13 | 14 | export default LinkButton 15 | -------------------------------------------------------------------------------- /public/images/password.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/pages/img/password.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/form/InputNotes.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../../styles/components/form.module.css' 2 | 3 | const InputNotes = (props: any) => { 4 | return ( 5 |

6 | {props.legnth > props.limit ? ( 7 | {props.legnth} 8 | ) : ( 9 | {props.legnth} 10 | )}{' '} 11 | / {props.limit} 12 |

13 | ) 14 | } 15 | 16 | export default InputNotes 17 | -------------------------------------------------------------------------------- /src/pages/_document.tsx: -------------------------------------------------------------------------------- 1 | import Document, { Html, Head, Main, NextScript } from 'next/document' 2 | class MyDocument extends Document { 3 | render() { 4 | return ( 5 | 6 | 7 | 8 | {/* 空のscriptタグを入れることにより、styleが当たらないバグを解消 */} 9 | 10 |
11 | 12 | 13 | 14 | ) 15 | } 16 | } 17 | 18 | export default MyDocument 19 | -------------------------------------------------------------------------------- /src/components/ScrollTopButton.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../styles/ScrollButton.module.css' 2 | import { Link as Scroll } from 'react-scroll' 3 | 4 | const ScrollTopButton = (props: any) => { 5 | return ( 6 |
7 | 13 |
14 | ) 15 | } 16 | 17 | export default ScrollTopButton 18 | -------------------------------------------------------------------------------- /public/images/place.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/modal/ClientOnlyPortal.tsx: -------------------------------------------------------------------------------- 1 | import { useRef, useEffect, useState } from 'react' 2 | import { createPortal } from 'react-dom' 3 | 4 | export default function ClientOnlyPortal({ children, selector }: any) { 5 | const ref = useRef() 6 | const [mounted, setMounted] = useState(false) 7 | 8 | useEffect(() => { 9 | ref.current = document.querySelector(selector) 10 | setMounted(true) 11 | }, [selector]) 12 | 13 | return mounted ? createPortal(children, ref.current!) : null 14 | } 15 | -------------------------------------------------------------------------------- /src/components/form/InputTextArea.tsx: -------------------------------------------------------------------------------- 1 | import styles from '../../styles/components/form.module.css' 2 | 3 | const InputTextArea = (props: any) => { 4 | return ( 5 |