- {this.props.title ?
- (
- {this.props.title}
-
) : (
)}
-
- {this.props.children}
-
+const GroupBox = (props) => {
+ return (
+
+ {props.title ?
+ (
+ {props.title}
+
) : (
)}
+
+ {props.children}
- );
- }
+
+ );
}
-class Row extends React.Component {
- render() {
- return (
- {this.props.children}
);
- }
+const Row = (props) => {
+ return (
+ {props.children}
);
}
-class Col extends React.Component {
- render() {
- return (
-
- {this.props.children}
-
- );
- }
+const Col = (props) => {
+ return (
+
+ {props.children}
+
+ );
}
-class Button extends React.Component {
- render() {
- return (
-
- );
- }
+const Button = (props) => {
+ return (
+
+ );
}
diff --git a/src/server/farm.scm b/src/server/farm.scm
index 0083d48..3e29414 100644
--- a/src/server/farm.scm
+++ b/src/server/farm.scm
@@ -127,6 +127,8 @@
(setter last-updated)
(setter last-cash)
(setter mailbox)
+ (setter websocket-thread)
+ (setter push-websocket-thread)
(setter mutex)
(setter harvesting)
(setter hay-doubled)
@@ -170,6 +172,8 @@
(alist-ref 'last-updated args eqv? 0)
(alist-ref 'last-cash args eqv? 5000)
(alist-ref 'mailbox args eqv? (make-mailbox))
+ (alist-ref 'websocket-thread args eqv? #f)
+ (alist-ref 'push-websocket-thread args eqv? #f)
(alist-ref 'mutex args eqv? (make-mutex 'player))
(alist-ref 'harvesting args eqv? #f)
(alist-ref 'hay-doubled args eqv? #f)
@@ -434,7 +438,11 @@
(define session-cookie-name (make-parameter "awful-cookie"))
(define session-cookie-setter (make-parameter
(lambda (sid)
- (set-cookie! (session-cookie-name) sid))))
+ (set-cookie! (session-cookie-name)
+ sid
+ max-age: (* 60 60 24 365) ;; one year
+ )
+ )))
;; TODO make cookie last forever
(session-lifetime (* 60 60 60 24 7 4))
@@ -1603,12 +1611,12 @@
(create-start-response "new-game-started")))
((string=? type "create-account")
(let ((username (alist-ref 'username msg))
- (email (alist-ref 'email msg))
+ ;; (email (alist-ref 'email msg))
(password (alist-ref 'password msg))
(confirm-password (alist-ref 'confirmPassword msg)))
(if (string=? password confirm-password)
(if (null? (fetch-user username))
- (let ((id (add-user username email password)))
+ (let ((id (add-user username "" password)))
(session-set! (sid) 'user-id id)
(create-start-response "start-init"))
(create-start-response "start-init" errors: '("Account already exists")))
@@ -1882,6 +1890,8 @@
(define (websocket-page)
(sid (read-cookie (session-cookie-name)))
;; TODO some kind of error handling if (sid) #f
+ (when (and (*player*) (not (player-websocket-thread (*player*))))
+ (set! (player-websocket-thread (*player*)) (current-thread)))
(with-concurrent-websocket
(lambda ()
(let loop ((msg (read-json (receive-message))))
diff --git a/webpack.dev.js b/webpack.dev.js
index ae4cadb..3c8587c 100644
--- a/webpack.dev.js
+++ b/webpack.dev.js
@@ -21,6 +21,7 @@ const common = require('./webpack.common.js');
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
+const webpack = require('webpack');
module.exports = function(env) {
return merge(common, {
@@ -43,6 +44,7 @@ module.exports = function(env) {
'node_modules']
},
plugins: [
+ new webpack.HotModuleReplacementPlugin(),
new ReactRefreshWebpackPlugin(),
new HtmlWebpackPlugin({
title: 'Alpha Centauri Farming',