diff --git a/client/package-lock.json b/client/package-lock.json index ff37bead2..35fcc32c6 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -1,19 +1,19 @@ { "name": "foodoasis-client", - "version": "1.0.81", + "version": "1.0.82", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "foodoasis-client", - "version": "1.0.81", + "version": "1.0.82", "license": "GPL-2.0", "dependencies": { "@craco/craco": "^7.0.0", "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", "@mapbox/geo-viewport": "^0.4.1", - "@mui/icons-material": "^5.11.0", + "@mui/icons-material": "^5.16.4", "@mui/lab": "^5.0.0-alpha.113", "@mui/material": "^5.11.1", "@mui/x-data-grid": "^5.17.20", @@ -1822,9 +1822,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", - "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz", + "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -3285,18 +3285,18 @@ } }, "node_modules/@mui/icons-material": { - "version": "5.11.11", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.11.11.tgz", - "integrity": "sha512-Eell3ADmQVE8HOpt/LZ3zIma8JSvPh3XgnhwZLT0k5HRqZcd6F/QDHc7xsWtgz09t+UEFvOYJXjtrwKmLdwwpw==", + "version": "5.16.4", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.4.tgz", + "integrity": "sha512-j9/CWctv6TH6Dou2uR2EH7UOgu79CW/YcozxCYVLJ7l03pCsiOlJ5sBArnWJxJ+nGkFwyL/1d1k8JEPMDR125A==", "dependencies": { - "@babel/runtime": "^7.21.0" + "@babel/runtime": "^7.23.9" }, "engines": { "node": ">=12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@mui/material": "^5.0.0", diff --git a/client/package.json b/client/package.json index 76755befa..f31df4f18 100644 --- a/client/package.json +++ b/client/package.json @@ -1,7 +1,7 @@ { "name": "foodoasis-client", "description": "React Client for Food Oasis", - "version": "1.0.82", + "version": "1.0.83", "author": "Hack for LA", "license": "GPL-2.0", "private": true, @@ -20,7 +20,7 @@ "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", "@mapbox/geo-viewport": "^0.4.1", - "@mui/icons-material": "^5.11.0", + "@mui/icons-material": "^5.16.4", "@mui/lab": "^5.0.0-alpha.113", "@mui/material": "^5.11.1", "@mui/x-data-grid": "^5.17.20", diff --git a/client/src/App.js b/client/src/App.js index 114090d02..116b23a11 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -10,6 +10,7 @@ import * as analytics from "../src/services/analytics"; import { AppStateProvider } from "./appReducer"; import SEO from "./components/SEO"; import AppRoutes from "./Routes"; +import { MapProvider } from "react-map-gl"; function App() { useEffect(() => { @@ -29,9 +30,11 @@ function App() { url={window.origin} description="Food Oasis is a non-profit, volunteer-run directory of free food resources in the Los Angeles area." /> - - - + + + + + diff --git a/client/src/components/Admin/OrganizationEdit.js b/client/src/components/Admin/OrganizationEdit.js index 7273ba033..f58d02c90 100644 --- a/client/src/components/Admin/OrganizationEdit.js +++ b/client/src/components/Admin/OrganizationEdit.js @@ -51,6 +51,12 @@ const validationSchema = Yup.object().shape({ longitude: Yup.number().required("Longitude is required").min(-180).max(180), email: Yup.string().email("Invalid email address format"), hours: Yup.array().of(HourSchema), + twitter: Yup.string() + .matches( + /^https?:\/\/(www\.)?(twitter\.com|x\.com)\/.*/, + "Invalid URL, e.g. 'https://twitter.com/ or https://x.com/'" + ) + .required("Full Twitter/X URL is required."), selectedCategoryIds: Yup.array().min( 1, "You must select at least one category" diff --git a/client/src/components/Admin/OrganizationEdit/ContactDetails.js b/client/src/components/Admin/OrganizationEdit/ContactDetails.js index 2ba585c63..e3ab80f69 100644 --- a/client/src/components/Admin/OrganizationEdit/ContactDetails.js +++ b/client/src/components/Admin/OrganizationEdit/ContactDetails.js @@ -64,7 +64,13 @@ export default function ContactDetails({
-