diff --git a/client/homebrew/pages/basePages/uiPage/uiPage.jsx b/client/homebrew/pages/basePages/uiPage/uiPage.jsx index 400dbb28e..9fa7e08bb 100644 --- a/client/homebrew/pages/basePages/uiPage/uiPage.jsx +++ b/client/homebrew/pages/basePages/uiPage/uiPage.jsx @@ -1,7 +1,4 @@ import './uiPage.less'; -import React from 'react'; -import createReactClass from 'create-react-class'; - import Nav from '../../../navbar/nav.jsx'; import Navbar from '../../../navbar/navbar.jsx'; import NewBrewItem from '../../../navbar/newbrew.navitem.jsx'; @@ -10,30 +7,22 @@ import RecentNavItems from '../../../navbar/recent.navitem.jsx'; const { both: RecentNavItem } = RecentNavItems; import Account from '../../../navbar/account.navitem.jsx'; +const UIPage = ({ brew, children })=>
+ + + {brew?.title} + + + + + + + + -const UIPage = createReactClass({ - displayName : 'UIPage', - - render : function(){ - return
- - - {this.props.brew.title} - - - - - - - - - - -
- {this.props.children} -
-
; - } -}); +
+ {children} +
+
; export default UIPage; diff --git a/client/homebrew/pages/vaultPage/vaultPage.less b/client/homebrew/pages/vaultPage/vaultPage.less index 85eabe7a0..72ff916fe 100644 --- a/client/homebrew/pages/vaultPage/vaultPage.less +++ b/client/homebrew/pages/vaultPage/vaultPage.less @@ -1,9 +1,20 @@ +@import '@themes/assets/assets.less'; @import '@sharedStyles/core.less'; .vaultPage { height : 100%; overflow-y : hidden; + --bg-clr : white; + --bg-image : @backgroundImageAlt; + --h1-clr : black; + --h2-clr : #000077; + --label-clr : black; + --input-bg : white; + --input-bg-hover : #DDDDDD; + --input-text-clr : black; + --input-placeholder-clr : grey; + *:not(input) { user-select : none; } .form { background : white; } @@ -13,8 +24,15 @@ height : 100%; &.form .brewLookup { + color : var(--label-clr); + background-color : var(--bg-clr); + background-image : var(--bg-image); + background-size : cover; + height:100%; + position : relative; padding : 50px clamp(20px, 4vw, 50px); + small { font-size : 10pt; @@ -33,6 +51,7 @@ h1, h2, h3, h4 { font-family : 'CodeBold'; letter-spacing : 2px; + color : var(--h1-clr); } legend { @@ -87,14 +106,14 @@ align-items : center; margin : 10px 0; } - select { margin : 0 10px; } - - input { + input[type='text'], textarea, select { margin : 0 10px; - - &:invalid { background : rgb(255, 188, 181); } - - + color : var(--input-text-clr); + background-color : var(--input-bg); + border : 1px solid var(--input-placeholder-clr); + &:hover, :focus { outline : 1px solid var(--input-placeholder-clr); background-color : var(--input-bg-hover); } + &::placeholder { color : var(--input-placeholder-clr); } + &:invalid { background : #ffbcb5; } } #searchButton { diff --git a/faq.md b/faq.md index d3b6d24f6..a8e2c6977 100644 --- a/faq.md +++ b/faq.md @@ -131,4 +131,8 @@ Your ad-blocking software is mistakenly assuming your text to be an ad. We recom ### My username appears as _hidden_ when checking my brews in the Vault, why is that? -Your username is most likely your e-mail adress, and our code is picking that up and protecting your identity. This will remain as is, but you can ask for a name change by contacting the moderators on [the subreddit](https://www.reddit.com/r/homebrewery) with your Homebrewery username, and your desired new name. You will also be asked to provide details about some of your unpublished brews, to verify your identity. No information will be leaked or shared. +Your username is most likely your e-mail adress, and our code is picking that up and protecting your identity. + +### I would like to change my username. How do I do that? + +You can change your username on your [NaturalCrit Account](https://www.naturalcrit.com/account) page. diff --git a/package-lock.json b/package-lock.json index 0e4277d3a..dd2c214fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,27 +38,27 @@ "cors": "^2.8.5", "create-react-class": "^15.7.0", "dedent": "^1.7.2", - "express": "^5.1.0", + "express": "^5.3.0", "express-async-handler": "^1.2.0", "express-static-gzip": "3.0.2", "fflate": "^0.8.3", "fs-extra": "^11.4.1", "hash-wasm": "^4.12.0", "idb-keyval": "^6.2.5", - "js-yaml": "^5.4.3", + "js-yaml": "^5.5.0", "jwt-simple": "^0.5.6", "less": "^4.9.1", "lodash": "^4.18.1", "marked-hbfm": "^1.0.1", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.31.0", - "mongoose": "^9.11.1", + "mongoose": "^9.11.2", "nanoid": "6.0.2", "nconf": "^0.13.0", - "node": "^26.11.1", - "prettier": "^3.9.9", - "react": "^19.3.0", - "react-dom": "^19.3.0", + "node": "^26.12.0", + "prettier": "^3.9.10", + "react": "^19.3.1", + "react-dom": "^19.3.1", "react-frame-component": "^5.3.2", "react-router": "^8.4.0", "sanitize-filename": "1.6.4", @@ -6375,9 +6375,9 @@ "license": "MIT" }, "node_modules/content-disposition": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", - "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-2.0.1.tgz", + "integrity": "sha512-e+H0ZXHSWYrENhQzw1LPuP4oF5MzVKmDU6d3hxlvaPEYLLg62MxtQNPRx4SYSuYJSBUgnQIG4HIN2tEtNv7Dog==", "license": "MIT", "engines": { "node": ">=18" @@ -7531,15 +7531,15 @@ "license": "MIT" }, "node_modules/express": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", - "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.3.0.tgz", + "integrity": "sha512-qCqy1xSoaugxOD4IVHb1ZWdkvCF2W3aE2okKouWj8VwJ+ztskSiXoBnCSJqfKT+cVPJhuJqe9YLbY425+Zh00g==", "license": "MIT", "dependencies": { "accepts": "^2.0.0", - "body-parser": "^2.2.1", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", + "body-parser": "^2.3.0", + "content-disposition": "^2.0.1", + "content-type": "^2.0.0", "cookie": "^0.7.1", "cookie-signature": "^1.2.1", "debug": "^4.4.0", @@ -7555,14 +7555,14 @@ "on-finished": "^2.4.1", "once": "^1.4.0", "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", + "proxy-addr": "^2.0.8", + "qs": "^6.16.0", "range-parser": "^1.2.1", "router": "^2.2.0", "send": "^1.1.0", "serve-static": "^2.2.0", "statuses": "^2.0.1", - "type-is": "^2.0.1", + "type-is": "^2.1.0", "vary": "^1.1.2" }, "engines": { @@ -7590,15 +7590,6 @@ "serve-static": "^2.2.0" } }, - "node_modules/express/node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express/node_modules/cookie-signature": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", @@ -10867,9 +10858,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.4.3.tgz", - "integrity": "sha512-yzzNtgczwgoVHNigCyKTXcQJU4Y8t/ikU4UxXW0BvrLfHTGWZhsNcOT2s/a7vn81/4KqVnNmHjaUEPlvWnNwVw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.5.0.tgz", + "integrity": "sha512-paNr4LFIFPjeeSmwNYdrb8FafLLG/Cr2Af3GjbsHJ5CxIjH4r0c2emlmRdAtpPAieP1gRVzk6buBbVP5gBMGAg==", "funding": [ { "type": "github", @@ -10882,12 +10873,28 @@ ], "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "argparse": "^3.0.3" }, "bin": { "js-yaml": "bin/js-yaml.mjs" } }, + "node_modules/js-yaml/node_modules/argparse": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.3.tgz", + "integrity": "sha512-Sn98ftV3KfsO8xfLPHG6oT8y+b0yvbrLgZjgPDXsharNY15tTAjqIsIju4S32nl6/iEUNNE4v+yL2Zhm8ooP3w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "PSF-2.0" + }, "node_modules/jsdom": { "version": "30.1.2", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.1.2.tgz", @@ -11054,9 +11061,9 @@ } }, "node_modules/kareem": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-3.4.0.tgz", - "integrity": "sha512-JAKhnR4S027v/8949QXNInRskgETCg9rFUMi1VjhGbjX+XltCAAEFcXykkSocNkom1kc66EMJfjWvhj87BDQKg==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-3.4.1.tgz", + "integrity": "sha512-UlgCAFNAdk/HLSsbfkmbH8pJqpEN52Ek8RG53Ys1i3Q3gbCQruSrWpplZlgIGyDHX/LNoLW97ei3OG43s7UhUA==", "license": "Apache-2.0", "engines": { "node": ">=18.0.0" @@ -11886,13 +11893,13 @@ } }, "node_modules/mongoose": { - "version": "9.11.1", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-9.11.1.tgz", - "integrity": "sha512-fVtjTVACOtAb0PjDDF+O5NebcEJy5JpAH+AXk16/5i36w38YkW6MZ+KWV54bdIOJFymDz1VjjA5Xg6L2QfjQjQ==", + "version": "9.11.2", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-9.11.2.tgz", + "integrity": "sha512-hFkl/2dccpD58coRAya3a/ht8ooAx9YPLzBfxVX9bEsgcrjsNkvuWQe8gplGfDdmzpw2RfFX1IB/G8PiFwyvwg==", "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", - "kareem": "3.4.0", + "kareem": "3.4.1", "mongodb": "~7.7", "mpath": "0.9.0", "mquery": "6.0.0", @@ -12131,9 +12138,9 @@ } }, "node_modules/node": { - "version": "26.11.1", - "resolved": "https://registry.npmjs.org/node/-/node-26.11.1.tgz", - "integrity": "sha512-KimXTKFoiWoakmW/7c2B3EFwZYrAjTjllg7kKSIQAQ7Ai+gRkkIoCrtrURJDrql+6hLshRWvZUmhkbE+JfKkFw==", + "version": "26.12.0", + "resolved": "https://registry.npmjs.org/node/-/node-26.12.0.tgz", + "integrity": "sha512-/P4rDRs4lOBFW0UUDb1Yuy02aDd9oh/RHZfl3haBnatqUcDnY0np4fo9EgK7zhX09bzZ/uroJfyzW+Tgo5kyiA==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -12833,9 +12840,9 @@ } }, "node_modules/prettier": { - "version": "3.9.9", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.9.tgz", - "integrity": "sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg==", + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.10.tgz", + "integrity": "sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==", "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -13085,24 +13092,24 @@ } }, "node_modules/react": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", - "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.1.tgz", + "integrity": "sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", - "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.1.tgz", + "integrity": "sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==", "license": "MIT", "dependencies": { "scheduler": "^0.28.0" }, "peerDependencies": { - "react": "^19.3.0" + "react": "^19.3.1" } }, "node_modules/react-frame-component": { diff --git a/package.json b/package.json index 6f1269f97..facfe3b3d 100644 --- a/package.json +++ b/package.json @@ -115,27 +115,27 @@ "cors": "^2.8.5", "create-react-class": "^15.7.0", "dedent": "^1.7.2", - "express": "^5.1.0", + "express": "^5.3.0", "express-async-handler": "^1.2.0", "express-static-gzip": "3.0.2", "fflate": "^0.8.3", "fs-extra": "^11.4.1", "hash-wasm": "^4.12.0", "idb-keyval": "^6.2.5", - "js-yaml": "^5.4.3", + "js-yaml": "^5.5.0", "jwt-simple": "^0.5.6", "less": "^4.9.1", "lodash": "^4.18.1", "marked-hbfm": "^1.0.1", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.31.0", - "mongoose": "^9.11.1", + "mongoose": "^9.11.2", "nanoid": "6.0.2", "nconf": "^0.13.0", - "node": "^26.11.1", - "prettier": "^3.9.9", - "react": "^19.3.0", - "react-dom": "^19.3.0", + "node": "^26.12.0", + "prettier": "^3.9.10", + "react": "^19.3.1", + "react-dom": "^19.3.1", "react-frame-component": "^5.3.2", "react-router": "^8.4.0", "sanitize-filename": "1.6.4",