diff --git a/apps/expo/app/auth/login/index.tsx b/apps/expo/app/auth/login/index.tsx deleted file mode 100644 index c6eb880f..00000000 --- a/apps/expo/app/auth/login/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { LoginScreen } from "@frontend/core"; -import React from "react"; - -export default function Login() { - return ; -} diff --git a/apps/next/app/auth/login/page.tsx b/apps/next/app/auth/login/page.tsx deleted file mode 100644 index 47dd7df6..00000000 --- a/apps/next/app/auth/login/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -"use client"; - -import { LoginScreen } from "@frontend/core"; - -export default function LoginPage() { - return ; -} diff --git a/packages/create-universal-app/bin/generate.js b/packages/create-universal-app/bin/generate.js index 8b1b6d06..903ef6ae 100755 --- a/packages/create-universal-app/bin/generate.js +++ b/packages/create-universal-app/bin/generate.js @@ -4,7 +4,7 @@ import fs from "fs-extra"; import ora from "ora"; import path from "path"; -const repoURL = "https://github.com/theodo-group/universal-app.git"; +const REPO_URL = "https://github.com/theodo-group/universal-app.git"; const projectName = process.argv[2]; if (!projectName) { @@ -37,8 +37,10 @@ const runAsyncProcess = async (spawnFunction) => { return; } + const userAnswers = await getUserInput(); + const cloning = ora(`Cloning repository to "${projectDir}"...`).start(); - await runAsyncProcess(() => spawn("git", ["clone", "--depth", "1", repoURL, projectDir])); + await runAsyncProcess(() => spawn("git", ["clone", "--depth", "1", REPO_URL, projectDir])); cloning.stop(); //remove git history and init a new one @@ -51,6 +53,10 @@ const runAsyncProcess = async (spawnFunction) => { const packagesDir = path.join(projectDir, "packages"); const createUniversalAppDir = path.join(packagesDir, "create-universal-app"); await fs.remove(createUniversalAppDir); + if (!userAnswers.authUI) { + const authDir = path.join(packagesDir, "frontend/core/src/features/auth"); + await fs.remove(authDir); + } cleanRepo.stop(); console.log("Project generated successfully!"); diff --git a/packages/create-universal-app/package.json b/packages/create-universal-app/package.json index 529d9691..780320b8 100644 --- a/packages/create-universal-app/package.json +++ b/packages/create-universal-app/package.json @@ -1,12 +1,13 @@ { "name": "create-universal-enabler-app", - "version": "0.0.6", + "version": "0.0.7", "type": "module", "description": "A generator for creating Universal Apps with the Theodo Group's Universal App Enabler", "packageManager": "yarn@3.4.1", "bin": "./bin/generate.js", "dependencies": { "fs-extra": "^11.2.0", + "inquirer": "^9.2.16", "ora": "^8.0.1" } } diff --git a/packages/create-universal-app/utils/getUserInput.js b/packages/create-universal-app/utils/getUserInput.js new file mode 100644 index 00000000..2c83ec0f --- /dev/null +++ b/packages/create-universal-app/utils/getUserInput.js @@ -0,0 +1,23 @@ +import inquirer from "inquirer"; + +export const getUserInput = async () => { + const ui = new inquirer.ui.BottomBar(); + // const platformQuestion = { + // type: "checkbox", + // name: "platforms", + // message: "Select your desired platforms:", + // choices: ["Mobile", "Web", "TV"], + // }; + const authUIQuestion = { + type: "confirm", + name: "authUI", + message: "Would you like the project to include a pre-made authentication UI?", + default: false, + }; + + const questions = [authUIQuestion]; + + ui.log.write("Answer some questions on the setup of your project:"); + const answers = await inquirer.prompt(questions); + return answers; +}; diff --git a/packages/frontend/core/src/features/home/screen.tsx b/packages/frontend/core/src/features/home/screen.tsx index d1a31161..cef07cea 100644 --- a/packages/frontend/core/src/features/home/screen.tsx +++ b/packages/frontend/core/src/features/home/screen.tsx @@ -64,9 +64,6 @@ export const HomeScreen: React.FC = ({ data }) => { Regular Link - - Login - = 2.1.2 < 3" + checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 + languageName: node + linkType: hard + "iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -8582,6 +8635,29 @@ __metadata: languageName: node linkType: hard +"inquirer@npm:^9.2.16": + version: 9.2.16 + resolution: "inquirer@npm:9.2.16" + dependencies: + "@ljharb/through": ^2.3.13 + ansi-escapes: ^4.3.2 + chalk: ^5.3.0 + cli-cursor: ^3.1.0 + cli-width: ^4.1.0 + external-editor: ^3.1.0 + figures: ^3.2.0 + lodash: ^4.17.21 + mute-stream: 1.0.0 + ora: ^5.4.1 + run-async: ^3.0.0 + rxjs: ^7.8.1 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wrap-ansi: ^6.2.0 + checksum: 3727d7ec5eaa5142c63c067004daed563656eefd04a42a57fcb1a4956625596cf0bb2e6e525e6202fff1dace8a0419a28e5f3b848af29e71ce739d09f9cf8bf6 + languageName: node + linkType: hard + "internal-ip@npm:4.3.0": version: 4.3.0 resolution: "internal-ip@npm:4.3.0" @@ -10500,6 +10576,13 @@ __metadata: languageName: node linkType: hard +"mute-stream@npm:1.0.0": + version: 1.0.0 + resolution: "mute-stream@npm:1.0.0" + checksum: 36fc968b0e9c9c63029d4f9dc63911950a3bdf55c9a87f58d3a266289b67180201cade911e7699f8b2fa596b34c9db43dad37649e3f7fdd13c3bb9edb0017ee7 + languageName: node + linkType: hard + "mv@npm:~2": version: 2.1.1 resolution: "mv@npm:2.1.1" @@ -12684,6 +12767,13 @@ __metadata: languageName: node linkType: hard +"run-async@npm:^3.0.0": + version: 3.0.0 + resolution: "run-async@npm:3.0.0" + checksum: 280c03d5a88603f48103fc6fd69f07fb0c392a1e0d319c34ec96a2516030e07ba06f79231a563c78698b882649c2fc1fda601bc84705f57d50efcd1fa506cfc0 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -12746,7 +12836,7 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3.0.0": +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0