diff --git a/client/README.md b/client/README.md index bde7319b3..0130a7c73 100644 --- a/client/README.md +++ b/client/README.md @@ -34,7 +34,7 @@ docker run -d --name lowcoder-dev -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" 1. Check out source code. 2. Change to client dir in the repository root via cd client. 3. Run yarn to install dependencies: . -4. Start dev server: `API_PROXY_TARGET=http://localhost:3000 yarn start`. +4. Start dev server: `LOWCODER_API_SERVICE_URL=http://localhost:3000 yarn start`. 5. After dev server starts successfully, it will be automatically opened in the default browser. ### Before submitting a pull request diff --git a/client/packages/lowcoder-cli/client.d.ts b/client/packages/lowcoder-cli/client.d.ts index a81ccb43a..2621660f5 100644 --- a/client/packages/lowcoder-cli/client.d.ts +++ b/client/packages/lowcoder-cli/client.d.ts @@ -30,6 +30,10 @@ declare var REACT_APP_EDITION: string; declare var REACT_APP_LANGUAGES: string; declare var REACT_APP_COMMIT_ID: string; declare var REACT_APP_API_HOST: string; +declare var LOWCODER_NODE_SERVICE_URL: string; +declare var LOWCODER_SHOW_BRAND: string; +declare var LOWCODER_CUSTOM_LOGO: string; +declare var LOWCODER_CUSTOM_LOGO_SQUARE: string; declare var REACT_APP_ENV: string; declare var REACT_APP_BUILD_ID: string; declare var REACT_APP_LOG_LEVEL: string; diff --git a/client/packages/lowcoder-dev-utils/buildVars.js b/client/packages/lowcoder-dev-utils/buildVars.js index 978b1d100..0ad460323 100644 --- a/client/packages/lowcoder-dev-utils/buildVars.js +++ b/client/packages/lowcoder-dev-utils/buildVars.js @@ -19,6 +19,22 @@ export const buildVars = [ name: "REACT_APP_API_HOST", defaultValue: "", }, + { + name: "LOWCODER_SHOW_BRAND", + defaultValue: 'false', + }, + { + name: "LOWCODER_CUSTOM_LOGO", + defaultValue: '', + }, + { + name: "LOWCODER_CUSTOM_LOGO_SQUARE", + defaultValue: '', + }, + { + name: "LOWCODER_NODE_SERVICE_URL", + defaultValue: "", + }, { name: "REACT_APP_ENV", defaultValue: "production", diff --git a/client/packages/lowcoder/src/app-env.d.ts b/client/packages/lowcoder/src/app-env.d.ts index 26a68f27c..95d829c6f 100644 --- a/client/packages/lowcoder/src/app-env.d.ts +++ b/client/packages/lowcoder/src/app-env.d.ts @@ -33,6 +33,10 @@ declare var REACT_APP_EDITION: string; declare var REACT_APP_LANGUAGES: string; declare var REACT_APP_COMMIT_ID: string; declare var REACT_APP_API_HOST: string; +declare var LOWCODER_NODE_SERVICE_URL: string; +declare var LOWCODER_SHOW_BRAND: string; +declare var LOWCODER_CUSTOM_LOGO: string; +declare var LOWCODER_CUSTOM_LOGO_SQUARE: string; declare var REACT_APP_ENV: string; declare var REACT_APP_BUILD_ID: string; declare var REACT_APP_LOG_LEVEL: string; diff --git a/client/packages/lowcoder/src/assets/images/index.tsx b/client/packages/lowcoder/src/assets/images/index.tsx index d67ebeef1..fa39ac5d4 100644 --- a/client/packages/lowcoder/src/assets/images/index.tsx +++ b/client/packages/lowcoder/src/assets/images/index.tsx @@ -1,7 +1,7 @@ //window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches import { ReactComponent as LogoIcon } from "./logo.svg"; import { ReactComponent as LogoWithNameIcon } from "./logo-with-name.svg"; -import { ReactComponent as LogoHomeIcon } from "./logo-with-name.svg"; +import { ReactComponent as LogoHomeIcon } from "./logo-with-name-home.svg"; export { default as favicon } from "./favicon.ico"; diff --git a/client/packages/lowcoder/src/components/PageSkeleton.tsx b/client/packages/lowcoder/src/components/PageSkeleton.tsx index f174d186f..221d550a3 100644 --- a/client/packages/lowcoder/src/components/PageSkeleton.tsx +++ b/client/packages/lowcoder/src/components/PageSkeleton.tsx @@ -83,6 +83,8 @@ export default function PageSkeleton(props: IProps) { {!hideHeader && isHeaderReady && (
: : } style={{ backgroundColor: brandingConfig?.headerColor, ...props.headStyle }} diff --git a/client/packages/lowcoder/src/pages/common/header.tsx b/client/packages/lowcoder/src/pages/common/header.tsx index 74b31648d..88a4557b2 100644 --- a/client/packages/lowcoder/src/pages/common/header.tsx +++ b/client/packages/lowcoder/src/pages/common/header.tsx @@ -34,7 +34,7 @@ import history from "util/history"; import { useApplicationId } from "util/hooks"; import { canManageApp } from "util/permissionUtils"; import ProfileDropdown from "./profileDropdown"; -import { Logo, LogoWithName } from "@lowcoder-ee/assets/images"; +import { Logo, LogoHome, LogoWithName } from "@lowcoder-ee/assets/images"; import { HeaderStartDropdown } from "./headerStartDropdown"; import { AppPermissionDialog } from "../../components/PermissionDialog/AppPermissionDialog"; import { getBrandingConfig } from "../../redux/selectors/configSelectors"; @@ -287,7 +287,9 @@ export default function Header(props: HeaderProps) { const headerStart = ( <> history.push(ALL_APPLICATIONS_URL)}> - + {LOWCODER_SHOW_BRAND === 'true' ? + LOWCODER_CUSTOM_LOGO_SQUARE !== "" ? logo : : + } {editName ? ( @@ -429,7 +431,9 @@ export function AppHeader() { const brandingConfig = useSelector(getBrandingConfig); const headerStart = ( history.push(ALL_APPLICATIONS_URL)}> - + {LOWCODER_SHOW_BRAND === 'true' ? + LOWCODER_CUSTOM_LOGO !== "" ? logo : : + } ); const headerEnd = ; diff --git a/client/packages/lowcoder/src/util/bottomResUtils.tsx b/client/packages/lowcoder/src/util/bottomResUtils.tsx index b55cc7c38..6abceb332 100644 --- a/client/packages/lowcoder/src/util/bottomResUtils.tsx +++ b/client/packages/lowcoder/src/util/bottomResUtils.tsx @@ -64,7 +64,7 @@ export const LargeBottomResIconWrapper = styled(IconWrapper)` function getBottomResIconInnerByUrl(type: BottomResType, url: string) { let fullUrl = url; if (!fullUrl.startsWith("http")) { - fullUrl = `${REACT_APP_API_HOST}/node-service/plugin-icons/${url}`; + fullUrl = `${LOWCODER_NODE_SERVICE_URL !== "" ? LOWCODER_NODE_SERVICE_URL : REACT_APP_API_HOST}/node-service/plugin-icons/${url}`; } return ; } diff --git a/client/packages/lowcoder/vite.config.mts b/client/packages/lowcoder/vite.config.mts index dc91711e4..d25fc7c59 100644 --- a/client/packages/lowcoder/vite.config.mts +++ b/client/packages/lowcoder/vite.config.mts @@ -14,7 +14,7 @@ import { globalDepPlugin } from "lowcoder-dev-utils/globalDepPlguin"; dotenv.config(); -const apiProxyTarget = process.env.API_PROXY_TARGET; +const apiProxyTarget = process.env.LOWCODER_API_SERVICE_URL; const nodeServiceApiProxyTarget = process.env.NODE_SERVICE_API_PROXY_TARGET; const nodeEnv = process.env.NODE_ENV ?? "development"; const edition = process.env.REACT_APP_EDITION; @@ -27,8 +27,8 @@ const base = ensureLastSlash(process.env.PUBLIC_URL); if (!apiProxyTarget && isDev) { console.log(); - console.log(chalk.red`API_PROXY_TARGET is required.\n`); - console.log(chalk.cyan`Start with command: API_PROXY_TARGET=\{backend-api-addr\} yarn start`); + console.log(chalk.red`LOWCODER_API_SERVICE_URL is required.\n`); + console.log(chalk.cyan`Start with command: LOWCODER_API_SERVICE_URL=\{backend-api-addr\} yarn start`); console.log(); process.exit(1); }