summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSonia Appasamy <sonia@tailscale.com>2023-08-11 10:53:27 -0400
committerSonia Appasamy <appasamysm@gmail.com>2023-08-11 11:33:27 -0400
commit3f12b9c8b2d3aa336ab9f6d5f2f3d759ba83654f (patch)
treecf4136d1e768b7b8c13274914b9fc51d182b809c
parent98ec8924c2a7aae36ade3f314a623aa9d31f7b84 (diff)
downloadtailscale-3f12b9c8b2d3aa336ab9f6d5f2f3d759ba83654f.tar.xz
tailscale-3f12b9c8b2d3aa336ab9f6d5f2f3d759ba83654f.zip
client/web: pipe through to React in dev mode
Updates tailscale/corp#13775 Signed-off-by: Sonia Appasamy <sonia@tailscale.com>
-rw-r--r--client/web/index.html2
-rw-r--r--client/web/package.json7
-rw-r--r--client/web/src/components/app.tsx5
-rw-r--r--client/web/src/index.tsx16
-rw-r--r--client/web/yarn.lock31
5 files changed, 57 insertions, 4 deletions
diff --git a/client/web/index.html b/client/web/index.html
index 18b532f24..0c558ac16 100644
--- a/client/web/index.html
+++ b/client/web/index.html
@@ -1,3 +1,3 @@
<!doctype html>
-Hello world
+ <script type="module" src="/src/index.tsx"></script>
</html> \ No newline at end of file
diff --git a/client/web/package.json b/client/web/package.json
index 9da37b8fc..afe06eae9 100644
--- a/client/web/package.json
+++ b/client/web/package.json
@@ -1,5 +1,5 @@
{
- "name": "webui",
+ "name": "webclient",
"version": "0.0.1",
"license": "BSD-3-Clause",
"engines": {
@@ -7,7 +7,10 @@
"yarn": "1.22.19"
},
"private": true,
- "dependencies": {},
+ "dependencies": {
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
+ },
"devDependencies": {
"tailwindcss": "^3.1.6",
"typescript": "^4.7.4",
diff --git a/client/web/src/components/app.tsx b/client/web/src/components/app.tsx
new file mode 100644
index 000000000..8f9303870
--- /dev/null
+++ b/client/web/src/components/app.tsx
@@ -0,0 +1,5 @@
+import React from "react"
+
+export default function App() {
+ return <div>Hello world</div>
+}
diff --git a/client/web/src/index.tsx b/client/web/src/index.tsx
new file mode 100644
index 000000000..c86ffa0da
--- /dev/null
+++ b/client/web/src/index.tsx
@@ -0,0 +1,16 @@
+import React from "react"
+import { createRoot } from "react-dom/client"
+import App from "./components/app"
+
+const rootEl = document.createElement("div")
+rootEl.id = "app-root"
+rootEl.classList.add("relative", "z-0")
+document.body.append(rootEl)
+
+const root = createRoot(rootEl)
+
+root.render(
+ <React.StrictMode>
+ <App />
+ </React.StrictMode>
+)
diff --git a/client/web/yarn.lock b/client/web/yarn.lock
index f6d3d92f3..cc0bc58ad 100644
--- a/client/web/yarn.lock
+++ b/client/web/yarn.lock
@@ -1056,7 +1056,7 @@ jiti@^1.18.2:
resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.1.tgz#fa99e4b76a23053e0e7cde098efe1704a14c16f1"
integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==
-js-tokens@^4.0.0:
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
@@ -1103,6 +1103,13 @@ local-pkg@^0.4.3:
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963"
integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==
+loose-envify@^1.1.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
loupe@^2.3.1, loupe@^2.3.6:
version "2.3.6"
resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53"
@@ -1350,11 +1357,26 @@ queue-microtask@^1.2.2:
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+react-dom@^18.2.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
+ integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
+ dependencies:
+ loose-envify "^1.1.0"
+ scheduler "^0.23.0"
+
react-is@^18.0.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+react@^18.2.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
+ integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
+ dependencies:
+ loose-envify "^1.1.0"
+
read-cache@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
@@ -1413,6 +1435,13 @@ run-parallel@^1.1.9:
dependencies:
queue-microtask "^1.2.2"
+scheduler@^0.23.0:
+ version "0.23.0"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
+ integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
+ dependencies:
+ loose-envify "^1.1.0"
+
semver@^6.3.1:
version "6.3.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"