diff --git a/react/resume/.gitignore b/react/resume/.gitignore
new file mode 100644
index 0000000..4ddbee5
--- /dev/null
+++ b/react/resume/.gitignore
@@ -0,0 +1,2 @@
+.parcel-cache
+dist
\ No newline at end of file
diff --git a/react/resume/package.json b/react/resume/package.json
new file mode 100644
index 0000000..5639673
--- /dev/null
+++ b/react/resume/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "resume",
+ "version": "1.0.0",
+ "description": "",
+ "main": "src/index.js",
+ "source": "src/index.html",
+ "browserslist": "> 0.5%, last 2 versions, not dead",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "start": "parcel",
+ "build": "parcel build"
+ },
+ "author": "blek",
+ "license": "MIT",
+ "devDependencies": {
+ "parcel": "^2.8.3",
+ "process": "^0.11.10"
+ },
+ "dependencies": {
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
+ }
+}
diff --git a/react/resume/src/Base.js b/react/resume/src/Base.js
new file mode 100644
index 0000000..f2ea7ad
--- /dev/null
+++ b/react/resume/src/Base.js
@@ -0,0 +1,3 @@
+export function Base() {
+ return
;
+}
\ No newline at end of file
diff --git a/react/resume/src/app.js b/react/resume/src/app.js
new file mode 100644
index 0000000..b18e429
--- /dev/null
+++ b/react/resume/src/app.js
@@ -0,0 +1,6 @@
+import { createRoot } from "react-dom/client";
+import { Base } from './Base';
+
+const container = document.getElementById("resume_js_app");
+const root = createRoot(container)
+root.render();
\ No newline at end of file
diff --git a/react/resume/src/index.html b/react/resume/src/index.html
new file mode 100644
index 0000000..8c05bd2
--- /dev/null
+++ b/react/resume/src/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+ Resume debug mode
+
+
+
+
+
+
+
diff --git a/react/resume/src/styles.css b/react/resume/src/styles.css
new file mode 120000
index 0000000..283be1b
--- /dev/null
+++ b/react/resume/src/styles.css
@@ -0,0 +1 @@
+../../../public/static/ui/resume.css
\ No newline at end of file
diff --git a/view/page/resume.pug b/view/page/resume.pug
index 975ed2e..7fa2ea5 100644
--- a/view/page/resume.pug
+++ b/view/page/resume.pug
@@ -2,6 +2,12 @@ extends ../layout/main.pug
block root
- var title = 'Resume'
link(rel='stylesheet' href='/static/ui/resume.css')
+ if (process.env.APP_DEBUG != 'true')
+ script(src='/static/assets/resume.js')
+ else
+ script(src='https://unpkg.com/react@18/umd/react.development.js' crossorigin)
+ script(src='https://unpkg.com/react-dom@18/umd/react-dom.development.js' crossorigin)
+ script(src='/dev_asset/resume.js')
block content
h2 My online resume
@@ -11,4 +17,10 @@ block content
p(class='js_loading_indicator')
| JS is loading. Please hold on...
br
- img(src='/static/ui/load.gif' style='border-radius:4px;margin-top:6px')
\ No newline at end of file
+ img(src='/static/ui/load.gif' style='border-radius:4px;margin-top:6px')
+ br
+ noscript
+ span(style='font-size:9pt;color:darkred;font-weight:bold;text-align:center')
+ | It seems that you have JS disabled.
+ br
+ | Please, enable it in order to run the app.
\ No newline at end of file