├── .env.example ├── .eslintrc.cjs ├── .gitignore ├── .prettierignore ├── .prettierrc.yaml ├── README.md ├── app ├── entry.server.tsx ├── root.tsx └── routes │ ├── _index.tsx │ ├── article.$slug.tsx │ ├── editor.$slug.tsx │ ├── editor._index.tsx │ ├── login.tsx │ └── register.tsx ├── mocks ├── handlers.ts └── node.ts ├── package.json ├── pages ├── article-edit │ ├── api │ │ ├── action.ts │ │ └── loader.ts │ ├── index.ts │ ├── model │ │ └── parseAsArticle.ts │ └── ui │ │ ├── ArticleEditPage.tsx │ │ ├── FormErrors.tsx │ │ └── TagsInput.tsx ├── article-read │ ├── api │ │ ├── action.ts │ │ └── loader.ts │ ├── index.ts │ └── ui │ │ ├── ArticleMeta.tsx │ │ ├── ArticleReadPage.tsx │ │ └── Comments.tsx ├── feed │ ├── api │ │ └── loader.ts │ ├── index.ts │ └── ui │ │ ├── ArticlePreview.tsx │ │ ├── FeedPage.tsx │ │ ├── Pagination.tsx │ │ ├── PopularTags.tsx │ │ └── Tabs.tsx └── sign-in │ ├── api │ ├── register.ts │ └── sign-in.ts │ ├── index.ts │ └── ui │ ├── RegisterPage.tsx │ └── SignInPage.tsx ├── pnpm-lock.yaml ├── public └── favicon.ico ├── remix.config.js ├── shared ├── api │ ├── auth.server.ts │ ├── client.ts │ ├── currentUser.ts │ ├── index.ts │ └── models.ts ├── config │ ├── backend.ts │ └── index.ts └── ui │ ├── Header.tsx │ └── index.ts ├── tsconfig.json └── vite.config.ts /.env.example: -------------------------------------------------------------------------------- 1 | SESSION_SECRET=required-random-string 2 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/.eslintrc.cjs -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/README.md -------------------------------------------------------------------------------- /app/entry.server.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/app/entry.server.tsx -------------------------------------------------------------------------------- /app/root.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/app/root.tsx -------------------------------------------------------------------------------- /app/routes/_index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/app/routes/_index.tsx -------------------------------------------------------------------------------- /app/routes/article.$slug.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/app/routes/article.$slug.tsx -------------------------------------------------------------------------------- /app/routes/editor.$slug.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/app/routes/editor.$slug.tsx -------------------------------------------------------------------------------- /app/routes/editor._index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/app/routes/editor._index.tsx -------------------------------------------------------------------------------- /app/routes/login.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/app/routes/login.tsx -------------------------------------------------------------------------------- /app/routes/register.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/app/routes/register.tsx -------------------------------------------------------------------------------- /mocks/handlers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/mocks/handlers.ts -------------------------------------------------------------------------------- /mocks/node.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/mocks/node.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/package.json -------------------------------------------------------------------------------- /pages/article-edit/api/action.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-edit/api/action.ts -------------------------------------------------------------------------------- /pages/article-edit/api/loader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-edit/api/loader.ts -------------------------------------------------------------------------------- /pages/article-edit/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-edit/index.ts -------------------------------------------------------------------------------- /pages/article-edit/model/parseAsArticle.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-edit/model/parseAsArticle.ts -------------------------------------------------------------------------------- /pages/article-edit/ui/ArticleEditPage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-edit/ui/ArticleEditPage.tsx -------------------------------------------------------------------------------- /pages/article-edit/ui/FormErrors.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-edit/ui/FormErrors.tsx -------------------------------------------------------------------------------- /pages/article-edit/ui/TagsInput.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-edit/ui/TagsInput.tsx -------------------------------------------------------------------------------- /pages/article-read/api/action.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-read/api/action.ts -------------------------------------------------------------------------------- /pages/article-read/api/loader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-read/api/loader.ts -------------------------------------------------------------------------------- /pages/article-read/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-read/index.ts -------------------------------------------------------------------------------- /pages/article-read/ui/ArticleMeta.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-read/ui/ArticleMeta.tsx -------------------------------------------------------------------------------- /pages/article-read/ui/ArticleReadPage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-read/ui/ArticleReadPage.tsx -------------------------------------------------------------------------------- /pages/article-read/ui/Comments.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/article-read/ui/Comments.tsx -------------------------------------------------------------------------------- /pages/feed/api/loader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/feed/api/loader.ts -------------------------------------------------------------------------------- /pages/feed/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/feed/index.ts -------------------------------------------------------------------------------- /pages/feed/ui/ArticlePreview.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/feed/ui/ArticlePreview.tsx -------------------------------------------------------------------------------- /pages/feed/ui/FeedPage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/feed/ui/FeedPage.tsx -------------------------------------------------------------------------------- /pages/feed/ui/Pagination.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/feed/ui/Pagination.tsx -------------------------------------------------------------------------------- /pages/feed/ui/PopularTags.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/feed/ui/PopularTags.tsx -------------------------------------------------------------------------------- /pages/feed/ui/Tabs.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/feed/ui/Tabs.tsx -------------------------------------------------------------------------------- /pages/sign-in/api/register.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/sign-in/api/register.ts -------------------------------------------------------------------------------- /pages/sign-in/api/sign-in.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/sign-in/api/sign-in.ts -------------------------------------------------------------------------------- /pages/sign-in/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/sign-in/index.ts -------------------------------------------------------------------------------- /pages/sign-in/ui/RegisterPage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/sign-in/ui/RegisterPage.tsx -------------------------------------------------------------------------------- /pages/sign-in/ui/SignInPage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pages/sign-in/ui/SignInPage.tsx -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /remix.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/remix.config.js -------------------------------------------------------------------------------- /shared/api/auth.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/shared/api/auth.server.ts -------------------------------------------------------------------------------- /shared/api/client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/shared/api/client.ts -------------------------------------------------------------------------------- /shared/api/currentUser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/shared/api/currentUser.ts -------------------------------------------------------------------------------- /shared/api/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/shared/api/index.ts -------------------------------------------------------------------------------- /shared/api/models.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/shared/api/models.ts -------------------------------------------------------------------------------- /shared/config/backend.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/shared/config/backend.ts -------------------------------------------------------------------------------- /shared/config/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/shared/config/index.ts -------------------------------------------------------------------------------- /shared/ui/Header.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/shared/ui/Header.tsx -------------------------------------------------------------------------------- /shared/ui/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/shared/ui/index.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feature-sliced/tutorial-conduit/HEAD/vite.config.ts --------------------------------------------------------------------------------