MCPcopy Create free account
hub / github.com/simstudioai/sim / Invite

Function Invite

apps/sim/app/invite/[id]/invite.tsx:163–456  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

161}
162
163export default function Invite() {
164 const router = useRouter()
165 const params = useParams()
166 const inviteId = params.id as string
167 const inviteTokenStorageKey = `inviteToken:${inviteId}`
168 const searchParams = useSearchParams()
169 const { data: session, isPending } = useSession()
170 const queryClient = useQueryClient()
171 const [invitation, setInvitation] = useState<InvitationDetails | null>(null)
172 const [isLoading, setIsLoading] = useState(true)
173 const [error, setError] = useState<InviteError | null>(null)
174 const [isAccepting, setIsAccepting] = useState(false)
175 const [accepted, setAccepted] = useState(false)
176 const [isNewUser, setIsNewUser] = useState(false)
177 const [token, setToken] = useState<string | null>(null)
178
179 useEffect(() => {
180 const errorReason = searchParams.get('error')
181 const isNew = searchParams.get('new') === 'true'
182 setIsNewUser(isNew)
183
184 const tokenFromQuery = searchParams.get('token')
185 if (tokenFromQuery) {
186 setToken(tokenFromQuery)
187 sessionStorage.setItem(inviteTokenStorageKey, tokenFromQuery)
188 } else {
189 const storedToken = sessionStorage.getItem(inviteTokenStorageKey)
190 if (storedToken) {
191 setToken(storedToken)
192 }
193 }
194
195 if (errorReason) {
196 setError(getInviteError(errorReason))
197 setIsLoading(false)
198 }
199 }, [searchParams, inviteId, inviteTokenStorageKey])
200
201 useEffect(() => {
202 if (!session?.user) return
203
204 async function fetchInvitation() {
205 setIsLoading(true)
206 try {
207 const data = await requestJson(getInvitationContract, {
208 params: { id: inviteId },
209 query: { token: token ?? undefined },
210 })
211 setInvitation(data.invitation)
212 setError(null)
213 } catch (fetchError) {
214 logger.error('Error fetching invitation:', fetchError)
215 const code =
216 fetchError instanceof ApiClientError
217 ? codeFromApiClientError(fetchError)
218 : 'network-error'
219 setError(getInviteError(code))
220 } finally {

Callers

nothing calls this directly

Calls 9

useSessionFunction · 0.90
setErrorFunction · 0.85
getInviteErrorFunction · 0.85
setItemMethod · 0.80
getItemMethod · 0.80
fetchInvitationFunction · 0.70
getCallbackUrlFunction · 0.70
getMethod · 0.65
pushMethod · 0.45

Tested by

no test coverage detected