diff --git a/.vscode/easycode.ignore b/.vscode/easycode.ignore new file mode 100644 index 00000000..7f86f293 --- /dev/null +++ b/.vscode/easycode.ignore @@ -0,0 +1,14 @@ +node_modules/ +dist/ +vendor/ +cache/ +.*/ +*.min.* +*.test.* +*.spec.* +*.bundle.* +*.bundle-min.* +*.log +infra/ +apps/website +apps/client \ No newline at end of file diff --git a/apps/admin/next.config.js b/apps/admin/next.config.js index 5cba8eae..84d0e949 100644 --- a/apps/admin/next.config.js +++ b/apps/admin/next.config.js @@ -1,7 +1,7 @@ /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, - transpilePackages: ['@sahil/lib', 'ui', '@sahil/configs', "@sahil/features"], + transpilePackages: ['@sahil/lib', 'ui', '@sahil/configs', "@sahil/features", "tsconfig", "eslint-config-custom"], images: { remotePatterns: [ { @@ -9,13 +9,9 @@ const nextConfig = { hostname: 'res.cloudinary.com', port: '', }, - { - protocol: 'https', - hostname: 'https://lh3.googleusercontent.com', - port: '', - }, ], }, + output: "standalone" }; module.exports = nextConfig; diff --git a/apps/admin/package.json b/apps/admin/package.json index 58bacac8..2008def6 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -9,16 +9,41 @@ "lint": "next lint" }, "dependencies": { + "@apollo/client": "^3.8.1", + "@apollo/react-hooks": "^4.0.0", + "@formkit/auto-animate": "^0.7.0", + "@hookform/resolvers": "^3.3.0", + "@react-google-maps/api": "^2.19.2", "@sahil/configs": "*", "@sahil/features": "*", "@sahil/lib": "*", + "@types/jsonwebtoken": "^9.0.5", + "apollo-link-ws": "^1.0.20", + "autoprefixer": "10.4.15", "daisyui": "^4.12.2", - "next": "14.2.3", + "date-fns": "^2.30.0", + "eslint": "8.47.0", + "eslint-config-custom": "*", + "eslint-config-next": "^14.2.3", + "graphql": "^16.8.0", + "graphql-ws": "^5.14.0", + "jsonwebtoken": "^9.0.2", + "next": "^14.2.3", "next-auth": "^4.24.7", "next-auth-hasura-adapter": "^2.0.0", + "postcss": "8.4.28", "react": "^18.3.1", "react-dom": "^18.3.1", - "ui": "*" + "react-hook-form": "^7.45.4", + "react-hot-toast": "^2.4.1", + "react-icons": "^4.12.0", + "subscriptions-transport-ws": "^0.11.0", + "swr": "^2.2.1", + "tailwindcss": "3.3.3", + "tsconfig": "*", + "ui": "*", + "zod": "3.21.4", + "zustand": "^4.4.1" }, "devDependencies": { "@types/node": "^20", diff --git a/apps/admin/src/Layout/layout.tsx b/apps/admin/src/Layout/layout.tsx index 36ae183e..ff7e0f2a 100644 --- a/apps/admin/src/Layout/layout.tsx +++ b/apps/admin/src/Layout/layout.tsx @@ -61,9 +61,7 @@ export default function Layout({ children, ...props }: LayoutProps) { user={session?.user} /> )} -
- {children} -
+
{children}
); } diff --git a/apps/admin/src/config.ts b/apps/admin/src/config.ts new file mode 100644 index 00000000..7931068f --- /dev/null +++ b/apps/admin/src/config.ts @@ -0,0 +1,48 @@ +import { z } from 'zod'; + +const envSchema = z.object({ + // Server + SERVER_URL: z.string().url(), + + // Hasura + HASURA_GRAPHQL_CORS_DOMAIN: z.string(), + NEXT_PUBLIC_HASURA_GRAPHQL_ENDPOINT: z.string().url(), + NEXT_PUBLIC_HASURA_GRAPHQL_ADMIN_SECRET: z.string(), + NEXT_PUBLIC_HASURA_GRAPHQL_WS: z.string().url(), + + // Auth + SECRET: z.string(), + NEXTAUTH_SECRET: z.string(), + NEXT_PUBLIC_NEXTAUTH_URL: z.string().url(), + + // APIs + NEXT_PUBLIC_GITHUB_SECRET: z.string(), + NEXT_PUBLIC_GITHUB_ID: z.string(), + NEXT_PUBLIC_GOOGLE_SECRET: z.string(), + NEXT_PUBLIC_GOOGLE_API_KEY: z.string().optional(), + NEXT_PUBLIC_GOOGLE_ID: z.string(), + + // Database + POSTGRES_USER: z.string(), + POSTGRES_PASSWORD: z.string(), + POSTGRES_DATABASE: z.string(), + + // App URLs + ADMIN_URL: z.string().url(), + AGENT_URL: z.string().url(), + CLIENT_URL: z.string().url(), + COURIER_URL: z.string().url(), + API_URL: z.string().url(), + + // Email + EMAIL_SERVER_USER: z.string(), + EMAIL_SERVER_PASSWORD: z.string(), + EMAIL_SERVER_HOST: z.string(), + EMAIL_SERVER_PORT: z.string(), + EMAIL_FROM: z.string().email(), + EMAIL_SERVER: z.string(), +}); + +const env = envSchema.parse(process.env); + +export default env; diff --git a/apps/admin/types.d.ts b/apps/admin/types.d.ts new file mode 100644 index 00000000..46cd38d3 --- /dev/null +++ b/apps/admin/types.d.ts @@ -0,0 +1,11 @@ +// https://github.com/nextauthjs/next-auth/discussions/536#discussioncomment-1932922 +import NextAuth, { DefaultSession } from "next-auth"; + +declare module "next-auth" { + interface Session { + user: { + id: string; + address: string; + } & DefaultSession["user"]; + } +} diff --git a/apps/agent/src/Dashboard/AgentToolBar.tsx b/apps/agent/src/Dashboard/AgentToolBar.tsx index a26f6d14..51d2381f 100644 --- a/apps/agent/src/Dashboard/AgentToolBar.tsx +++ b/apps/agent/src/Dashboard/AgentToolBar.tsx @@ -18,22 +18,27 @@ export const AgentToolBar = () => {
-

Hey, {user?.name?.split(' ')[0]}

-

{formatCurrentDate()}

+

+ Hey, {user?.name?.split(" ")[0]} +

+

+ {formatCurrentDate()} +

-