diff --git a/.env b/.env
index 4ace3ec..0efd8b0 100644
--- a/.env
+++ b/.env
@@ -1 +1 @@
-WDS_SOCKET_PORT=443
+WDS_SOCKET_PORT=4000
diff --git a/package-lock.json b/package-lock.json
index 9ede0b7..eb0979d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,6 +17,7 @@
"react-dom": "^18.2.0",
"react-router-dom": "^6.15.0",
"react-scripts": "5.0.1",
+ "react-share": "^4.4.1",
"socket.io-client": "^4.7.2",
"web-vitals": "^2.1.4"
},
@@ -11990,6 +11991,27 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/jsonp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.2.1.tgz",
+ "integrity": "sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==",
+ "dependencies": {
+ "debug": "^2.1.3"
+ }
+ },
+ "node_modules/jsonp/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/jsonp/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/jsonpath": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz",
@@ -14858,6 +14880,22 @@
}
}
},
+ "node_modules/react-share": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/react-share/-/react-share-4.4.1.tgz",
+ "integrity": "sha512-AJ9m9RiJssqvYg7MoJUc9J0D7b/liWrsfQ99ndKc5vJ4oVHHd4Fy87jBlKEQPibT40oYA3AQ/a9/oQY6/yaigw==",
+ "dependencies": {
+ "classnames": "^2.3.2",
+ "jsonp": "^0.2.1"
+ },
+ "engines": {
+ "node": ">=6.9.0",
+ "npm": ">=5.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.3.0 || ^17 || ^18"
+ }
+ },
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
diff --git a/package.json b/package.json
index 2b35d42..01d5e73 100644
--- a/package.json
+++ b/package.json
@@ -12,11 +12,12 @@
"react-dom": "^18.2.0",
"react-router-dom": "^6.15.0",
"react-scripts": "5.0.1",
+ "react-share": "^4.4.1",
"socket.io-client": "^4.7.2",
"web-vitals": "^2.1.4"
},
"scripts": {
- "start": "export PORT=80; react-scripts start",
+ "start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
diff --git a/src/App.js b/src/App.js
index 5a93504..854f03d 100644
--- a/src/App.js
+++ b/src/App.js
@@ -18,52 +18,68 @@ function App() {
const [data, setData] = useState();
const [poll, setPoll] = useState();
const [user, setUser] = useState();
+ const [anon, setAnon] = useState();
const [list, setList] = useState();
+ const [exist, setExist] = useState();
const [isConnected, setIsConnected] = useState(socket.connected);
const navigate = useNavigate();
useEffect(() => {
function onConnect() {
- console.log('APP onConnect')
+ console.log(' 🐞 APP onConnect')
setIsConnected(true);
}
function onDisconnect() {
- console.log('APP onDisconnect')
+ console.log(' 🐞 APP onDisconnect')
setIsConnected(false);
}
function onCreate(data) {
- console.log('APP onCreate')
+ console.log(' 🪲 APP onCreate')
navigate(`/poll/${data}`)
}
- function onRegister(data) {
- console.log('APP onRegister data: ', data)
+ function onJoin(data) {
+ console.log(' 🪲 APP onJoin data: ', data)
setUser(data.user)
- localStorage.setItem(data.poll, data.token)
- navigate(`/poll/${data.poll}`)
+ localStorage.setItem(data.pid, data.token)
+ navigate(`/poll/${data.pid}`)
}
function onPoll(data) {
- console.log('APP onPoll data: ', data)
- setPoll(data)
+ console.log(' 🪲 APP onPoll data: ', data)
+ setPoll(data.poll)
+ setUser(data.user)
+ }
+ function onExist(data) {
+ console.log(' 🪲 APP onExist data: ', data)
+ setExist(data)
}
function onInfo(data) {
- console.log('APP onInfo data: ', data)
+ console.log(' 🪲 APP onInfo data: ', data)
+ if (data?.anonymous) {
+ setAnon(data.anonymous)
+ }
+ }
+ function onList(data) {
+ console.log(' 🪲 APP onList data: ', data)
setList(data)
}
-
socket.on('connect', onConnect);
- socket.on('disconnect', onDisconnect);
socket.on('create', onCreate);
- socket.on('register', onRegister);
+ socket.on('join', onJoin);
socket.on('poll', onPoll);
+ socket.on('exist', onExist);
socket.on('info', onInfo);
+ socket.on('list', onList);
+ socket.on('disconnect', onDisconnect);
return () => {
socket.off('connect', onConnect);
- socket.off('disconnect', onDisconnect);
socket.off('create', onCreate);
- socket.off('register', onRegister);
+ socket.off('join', onJoin);
socket.off('poll', onPoll);
+ socket.off('exist', onExist);
socket.off('info', onInfo);
+ socket.off('list', onList);
+ socket.off('disconnect', onDisconnect);
};
}, []);
@@ -75,7 +91,7 @@ function App() {
Share the poll URL to the voters