-
diff --git a/components/WeaponGrid/index.tsx b/components/WeaponGrid/index.tsx
index 7749be6d..c1e05f8f 100644
--- a/components/WeaponGrid/index.tsx
+++ b/components/WeaponGrid/index.tsx
@@ -1,11 +1,13 @@
/* eslint-disable react-hooks/exhaustive-deps */
-import React, { useCallback, useEffect, useMemo, useState } from 'react'
+import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react'
import { useCookies } from 'react-cookie'
import { useModal as useModal } from '~utils/useModal'
import { AxiosResponse } from 'axios'
import debounce from 'lodash.debounce'
+import PartyContext from '~context/PartyContext'
+
import SearchModal from '~components/SearchModal'
import WeaponUnit from '~components/WeaponUnit'
import ExtraWeapons from '~components/ExtraWeapons'
@@ -47,6 +49,9 @@ const WeaponGrid = (props: Props) => {
// Set up state for party
const [partyId, setPartyId] = useState('')
+ // Set up the party context
+ const { setElement } = useContext(PartyContext)
+
// Set up states for Grid data
const [weapons, setWeapons] = useState
>({})
const [mainWeapon, setMainWeapon] = useState()
@@ -76,6 +81,10 @@ const WeaponGrid = (props: Props) => {
setPreviousUncapValues(initialPreviousUncapValues)
}, [props])
+ useEffect(() => {
+ if (mainWeapon) setElement(mainWeapon.weapon.element)
+ }, [mainWeapon])
+
// Update search grid whenever weapons or the mainhand are updated
useEffect(() => {
let newSearchGrid = Object.values(weapons).map((o) => o.weapon)
diff --git a/context/PartyContext.tsx b/context/PartyContext.tsx
new file mode 100644
index 00000000..c0bd324a
--- /dev/null
+++ b/context/PartyContext.tsx
@@ -0,0 +1,9 @@
+import { createContext } from 'react'
+import { TeamElement } from '~utils/enums'
+
+const PartyContext = createContext({
+ element: TeamElement.Any,
+ setElement: (element: TeamElement) => {}
+})
+
+export default PartyContext
\ No newline at end of file
diff --git a/pages/_app.tsx b/pages/_app.tsx
index f01ddfaa..5bee096a 100644
--- a/pages/_app.tsx
+++ b/pages/_app.tsx
@@ -5,18 +5,24 @@ import { CookiesProvider } from 'react-cookie'
import Layout from '~components/Layout'
import AppContext from '~context/AppContext'
+import PartyContext from '~context/PartyContext'
import type { AppProps } from 'next/app'
+import { TeamElement } from '~utils/enums'
function MyApp({ Component, pageProps }: AppProps) {
const [authenticated, setAuthenticated] = useState(false)
const [editable, setEditable] = useState(false)
+ const [element, setElement] = useState(TeamElement.Any)
+
return (
-
-
-
+
+
+
+
+
)
diff --git a/utils/enums.tsx b/utils/enums.tsx
new file mode 100644
index 00000000..f55ca8d8
--- /dev/null
+++ b/utils/enums.tsx
@@ -0,0 +1,9 @@
+export enum TeamElement {
+ Any,
+ Wind,
+ Fire,
+ Water,
+ Earth,
+ Dark,
+ Light
+}
\ No newline at end of file