Merge pull request 'added download url in authentication details, fixed blocked mods showing on landing page, fixed editing mod data not showing' (#59) from staging into master
All checks were successful
Release to Staging / build_and_release (push) Successful in 43s

Reviewed-on: #59
This commit is contained in:
freakoverse 2024-09-30 11:56:27 +00:00
commit 5d791413ff
3 changed files with 35 additions and 6 deletions

View File

@ -60,7 +60,7 @@ export const ModForm = ({ existingModData }: ModFormProps) => {
const [isPublishing, setIsPublishing] = useState(false)
const [gameOptions, setGameOptions] = useState<GameOption[]>([])
const [formState, setFormState] = useState<ModFormState>(
initializeFormState(existingModData)
initializeFormState()
)
const [formErrors, setFormErrors] = useState<FormErrors>({})
@ -70,6 +70,12 @@ export const ModForm = ({ existingModData }: ModFormProps) => {
}
}, [location.pathname]) // Only trigger when the pathname changes to submit-mod
useEffect(() => {
if (existingModData) {
setFormState(initializeFormState(existingModData))
}
}, [existingModData])
useEffect(() => {
const options = games.map((game) => ({
label: game['Game Name'],

View File

@ -8,7 +8,7 @@ import { GameCard } from '../components/GameCard'
import { ModCard } from '../components/ModCard'
import { LANDING_PAGE_DATA } from '../constants'
import { RelayController } from '../controllers'
import { useDidMount, useGames } from '../hooks'
import { useDidMount, useGames, useMuteLists } from '../hooks'
import { appRoutes, getModPageRoute } from '../routes'
import { ModDetails } from '../types'
import {
@ -258,12 +258,12 @@ const DisplayLatestMods = () => {
const [isFetchingLatestMods, setIsFetchingLatestMods] = useState(true)
const [latestMods, setLatestMods] = useState<ModDetails[]>([])
const muteLists = useMuteLists()
useDidMount(() => {
fetchMods({ source: window.location.host })
.then((res) => {
const mods = res
.sort((a, b) => b.published_at - a.published_at)
.slice(0, 4)
const mods = res.sort((a, b) => b.published_at - a.published_at)
setLatestMods(mods)
})
.finally(() => {
@ -271,6 +271,21 @@ const DisplayLatestMods = () => {
})
})
const filteredMods = useMemo(() => {
const mutedAuthors = [...muteLists.admin.authors, ...muteLists.user.authors]
const mutedEvents = [
...muteLists.admin.replaceableEvents,
...muteLists.user.replaceableEvents
]
const filtered = latestMods.filter(
(mod) =>
!mutedAuthors.includes(mod.author) && !mutedEvents.includes(mod.aTag)
)
return filtered.slice(0, 4)
}, [muteLists, latestMods])
return (
<div className='IBMSecMain IBMSMListWrapper'>
<div className='IBMSMTitleMain'>
@ -280,7 +295,7 @@ const DisplayLatestMods = () => {
{isFetchingLatestMods ? (
<Spinner />
) : (
latestMods.map((mod) => {
filteredMods.map((mod) => {
return <ModCard key={mod.id} {...mod} />
})
)}

View File

@ -1344,6 +1344,14 @@ const Download = ({
</p>
{showAuthDetails && (
<div className='IBMSMSMBSSDownloadsElementInsideAltTable'>
<div className='IBMSMSMBSSDownloadsElementInsideAltTableRow'>
<div className='IBMSMSMBSSDownloadsElementInsideAltTableRowCol IBMSMSMBSSDownloadsElementInsideAltTableRowColFirst'>
<p>Download URL</p>
</div>
<div className='IBMSMSMBSSDownloadsElementInsideAltTableRowCol'>
<p>{url}</p>
</div>
</div>
<div className='IBMSMSMBSSDownloadsElementInsideAltTableRow'>
<div className='IBMSMSMBSSDownloadsElementInsideAltTableRowCol IBMSMSMBSSDownloadsElementInsideAltTableRowColFirst'>
<p>SHA-256 hash</p>