update (project modal): update project params prefill

This commit is contained in:
MTG\mtg09
2022-12-02 11:35:25 +04:00
parent b78aa1da5b
commit 72807ed5a4

View File

@@ -5,7 +5,7 @@ import { setProject } from 'src/redux/features/project.slice';
import Button from 'src/Components/Button/Button'; import Button from 'src/Components/Button/Button';
import ProjectCardSkeleton from './ProjectDetailsCard.Skeleton' import ProjectCardSkeleton from './ProjectDetailsCard.Skeleton'
import { NotificationsService } from 'src/services' import { NotificationsService } from 'src/services'
import { useProjectDetailsQuery } from 'src/graphql'; import { ProjectDetailsQuery, Projects, useProjectDetailsQuery } from 'src/graphql';
import ErrorMessage from 'src/Components/Errors/ErrorMessage/ErrorMessage'; import ErrorMessage from 'src/Components/Errors/ErrorMessage/ErrorMessage';
import { MEDIA_QUERIES } from 'src/utils/theme'; import { MEDIA_QUERIES } from 'src/utils/theme';
import { FaDiscord, } from 'react-icons/fa'; import { FaDiscord, } from 'react-icons/fa';
@@ -16,15 +16,17 @@ import { IoMdClose } from 'react-icons/io';
import { CgGitFork } from 'react-icons/cg'; import { CgGitFork } from 'react-icons/cg';
import { Helmet } from 'react-helmet'; import { Helmet } from 'react-helmet';
import OgTags from 'src/Components/OgTags/OgTags'; import OgTags from 'src/Components/OgTags/OgTags';
import qs from 'qs'
interface Props extends ModalCard { interface Props extends ModalCard {
params: { params: {
projectId: string; projectId: string;
} }
} }
type Project = NonNullable<ProjectDetailsQuery['getProject']>[number]
export default function ProjectDetailsCard({ params: { projectId }, ...props }: Props) { export default function ProjectDetailsCard({ params: { projectId }, ...props }: Props) {
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
@@ -217,7 +219,7 @@ export default function ProjectDetailsCard({ params: { projectId }, ...props }:
color='gray' color='gray'
size='md' size='md'
className="my-16" className="my-16"
href={`https://airtable.com/shrlMIVAhkp5khCrs?prefill_Project=${project.id}`} href={createEditUrl(project)}
newTab newTab
// onClick={onClaim} // onClick={onClaim}
>Request Edit 📝</Button> >Request Edit 📝</Button>
@@ -226,3 +228,31 @@ export default function ProjectDetailsCard({ params: { projectId }, ...props }:
</div> </div>
) )
} }
function createEditUrl(project:Project){
const baseUrl = 'https://airtable.com/shrlMIVAhkp5khCrs';
const params = {
"Project": project?.id,
"Title": project?.title,
"Description": project?.description,
"Website": project?.website,
"Category": project?.category,
"Year Founded": project?.yearFounded,
"Dead": project?.dead,
"Company": project?.companyName,
"Twitter":project?.twitter,
"Telegram":project?.telegram,
"Discord":project?.discord,
"LinkedIn":project?.linkedIn,
"Repository":project?.repository,
"License":project?.license,
}
const paramsWithPrefix = Object.entries(params).reduce((result,[key,value])=>{
return {...result,[`prefill_${key}`]:value}
},{})
return baseUrl + `?${qs.stringify(paramsWithPrefix)}`
}