Skip to content

Commit 5fd5879

Browse files
committed
feat: migrate admin to react-router
1 parent 5d60d6d commit 5fd5879

File tree

143 files changed

+2636
-1505
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

143 files changed

+2636
-1505
lines changed

.dockerignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,9 @@ temp/
6161
# Misc
6262
*.pem
6363
*.key
64+
65+
# React Router - https://github.com/remix-run/react-router-templates/blob/dc79b1a065f59f3bfd840d4ef75cc27689b611e6/default/.dockerignore
66+
.react-router/
67+
build/
68+
node_modules/
69+
README.md

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,6 @@ dev-editor
101101
storybook-static
102102

103103
CLAUDE.md
104+
105+
build/
106+
.react-router/

apps/admin/.dockerignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# React Router - https://github.com/remix-run/react-router-templates/blob/dc79b1a065f59f3bfd840d4ef75cc27689b611e6/default/.dockerignore
2+
.react-router/
3+
build/
4+
node_modules/
5+
README.md

apps/admin/.eslintrc.cjs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
module.exports = {
2+
root: true,
3+
extends: ["@plane/eslint-config/next.js"],
4+
ignorePatterns: [
5+
"build/**",
6+
"dist/**",
7+
".vite/**",
8+
],
9+
rules: {
10+
"no-duplicate-imports": "off",
11+
"import/no-duplicates": ["error", {"prefer-inline": false}],
12+
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
13+
"@typescript-eslint/no-import-type-side-effects": "error",
14+
"@typescript-eslint/consistent-type-imports": [
15+
"error",
16+
{
17+
prefer: "type-imports",
18+
fixStyle: "separate-type-imports",
19+
disallowTypeAnnotations: false,
20+
},
21+
],
22+
},
23+
};
24+
25+

apps/admin/.eslintrc.js

Lines changed: 0 additions & 4 deletions
This file was deleted.

apps/admin/Dockerfile.admin

Lines changed: 4 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -63,41 +63,11 @@ RUN pnpm turbo run build --filter=admin
6363
# *****************************************************************************
6464
# STAGE 3: Copy the project and start it
6565
# *****************************************************************************
66-
FROM base AS runner
67-
WORKDIR /app
68-
69-
# Don't run production as root
70-
RUN addgroup --system --gid 1001 nodejs
71-
RUN adduser --system --uid 1001 nextjs
72-
USER nextjs
73-
74-
# Automatically leverage output traces to reduce image size
75-
# https://nextjs.org/docs/advanced-features/output-file-tracing
76-
COPY --from=installer /app/apps/admin/.next/standalone ./
77-
COPY --from=installer /app/apps/admin/.next/static ./apps/admin/.next/static
78-
COPY --from=installer /app/apps/admin/public ./apps/admin/public
79-
80-
ARG NEXT_PUBLIC_API_BASE_URL=""
81-
ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL
82-
83-
ARG NEXT_PUBLIC_ADMIN_BASE_URL=""
84-
ENV NEXT_PUBLIC_ADMIN_BASE_URL=$NEXT_PUBLIC_ADMIN_BASE_URL
85-
86-
ARG NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode"
87-
ENV NEXT_PUBLIC_ADMIN_BASE_PATH=$NEXT_PUBLIC_ADMIN_BASE_PATH
66+
FROM nginx:1.27-alpine AS runner
8867

89-
ARG NEXT_PUBLIC_SPACE_BASE_URL=""
90-
ENV NEXT_PUBLIC_SPACE_BASE_URL=$NEXT_PUBLIC_SPACE_BASE_URL
91-
92-
ARG NEXT_PUBLIC_SPACE_BASE_PATH="/spaces"
93-
ENV NEXT_PUBLIC_SPACE_BASE_PATH=$NEXT_PUBLIC_SPACE_BASE_PATH
94-
95-
ARG NEXT_PUBLIC_WEB_BASE_URL=""
96-
ENV NEXT_PUBLIC_WEB_BASE_URL=$NEXT_PUBLIC_WEB_BASE_URL
97-
98-
ENV NEXT_TELEMETRY_DISABLED=1
99-
ENV TURBO_TELEMETRY_DISABLED=1
68+
COPY --from=installer /app/apps/admin/build/client /usr/share/nginx/html
69+
COPY apps/admin/deploy/nginx.default.conf.template /etc/nginx/templates/default.conf.template
10070

10171
EXPOSE 3000
10272

103-
CMD ["node", "apps/admin/server.js"]
73+
# default nginx entrypoint/cmd

apps/admin/app/(all)/(dashboard)/ai/form.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
"use client";
2-
import { FC } from "react";
32
import { useForm } from "react-hook-form";
43
import { Lightbulb } from "lucide-react";
54
import { Button } from "@plane/propel/button";
65
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
7-
import { IFormattedInstanceConfiguration, TInstanceAIConfigurationKeys } from "@plane/types";
6+
import type { IFormattedInstanceConfiguration, TInstanceAIConfigurationKeys } from "@plane/types";
87
// components
9-
import { ControllerInput, TControllerInputFormField } from "@/components/common/controller-input";
8+
import type { TControllerInputFormField } from "@/components/common/controller-input";
9+
import { ControllerInput } from "@/components/common/controller-input";
1010
// hooks
1111
import { useInstance } from "@/hooks/store";
1212

@@ -16,7 +16,7 @@ type IInstanceAIForm = {
1616

1717
type AIFormValues = Record<TInstanceAIConfigurationKeys, string>;
1818

19-
export const InstanceAIForm: FC<IInstanceAIForm> = (props) => {
19+
export const InstanceAIForm: React.FC<IInstanceAIForm> = (props) => {
2020
const { config } = props;
2121
// store
2222
const { updateInstanceConfigurations } = useInstance();

apps/admin/app/(all)/(dashboard)/ai/layout.tsx

Lines changed: 0 additions & 10 deletions
This file was deleted.

apps/admin/app/(all)/(dashboard)/ai/page.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import { Loader } from "@plane/ui";
66
// hooks
77
import { useInstance } from "@/hooks/store";
88
// components
9+
import type { Route } from "./+types/page";
910
import { InstanceAIForm } from "./form";
1011

11-
const InstanceAIPage = observer(() => {
12+
const InstanceAIPage = observer<React.FC<Route.ComponentProps>>(() => {
1213
// store
1314
const { fetchInstanceConfigurations, formattedConfig } = useInstance();
1415

@@ -42,4 +43,6 @@ const InstanceAIPage = observer(() => {
4243
);
4344
});
4445

46+
export const meta: Route.MetaFunction = () => [{ title: "Artificial Intelligence Settings - God Mode" }];
47+
4548
export default InstanceAIPage;

apps/admin/app/(all)/(dashboard)/authentication/github/form.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use client";
22

3-
import { FC, useState } from "react";
3+
import { useState } from "react";
44
import { isEmpty } from "lodash-es";
55
import Link from "next/link";
66
import { useForm } from "react-hook-form";
@@ -9,14 +9,16 @@ import { Monitor } from "lucide-react";
99
import { API_BASE_URL } from "@plane/constants";
1010
import { Button, getButtonStyling } from "@plane/propel/button";
1111
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
12-
import { IFormattedInstanceConfiguration, TInstanceGithubAuthenticationConfigurationKeys } from "@plane/types";
12+
import type { IFormattedInstanceConfiguration, TInstanceGithubAuthenticationConfigurationKeys } from "@plane/types";
1313

1414
import { cn } from "@plane/utils";
1515
// components
1616
import { CodeBlock } from "@/components/common/code-block";
1717
import { ConfirmDiscardModal } from "@/components/common/confirm-discard-modal";
18-
import { ControllerInput, TControllerInputFormField } from "@/components/common/controller-input";
19-
import { CopyField, TCopyField } from "@/components/common/copy-field";
18+
import { ControllerInput } from "@/components/common/controller-input";
19+
import type { TControllerInputFormField } from "@/components/common/controller-input";
20+
import { CopyField } from "@/components/common/copy-field";
21+
import type { TCopyField } from "@/components/common/copy-field";
2022
// hooks
2123
import { useInstance } from "@/hooks/store";
2224

@@ -26,7 +28,7 @@ type Props = {
2628

2729
type GithubConfigFormValues = Record<TInstanceGithubAuthenticationConfigurationKeys, string>;
2830

29-
export const InstanceGithubConfigForm: FC<Props> = (props) => {
31+
export const InstanceGithubConfigForm: React.FC<Props> = (props) => {
3032
const { config } = props;
3133
// states
3234
const [isDiscardChangesModalOpen, setIsDiscardChangesModalOpen] = useState(false);

0 commit comments

Comments
 (0)