index.tsx 1017 B

12345678910111213141516171819202122232425262728293031323334353637
  1. 'use client'
  2. import React, { FC } from 'react'
  3. import { useContext } from 'use-context-selector'
  4. import ExploreContext from '@/context/explore-context'
  5. import ChatApp from '@/app/components/share/chat'
  6. import TextGenerationApp from '@/app/components/share/text-generation'
  7. import Loading from '@/app/components/base/loading'
  8. export interface IInstalledAppProps {
  9. id: string
  10. }
  11. const InstalledApp: FC<IInstalledAppProps> = ({
  12. id,
  13. }) => {
  14. const { installedApps } = useContext(ExploreContext)
  15. const installedApp = installedApps.find(item => item.id === id)
  16. if(!installedApp) {
  17. return (
  18. <div className='flex h-full items-center'>
  19. <Loading type='area' />
  20. </div>
  21. )
  22. }
  23. return (
  24. <div className='h-full p-2'>
  25. {installedApp?.app.mode === 'chat' ? (
  26. <ChatApp isInstalledApp installedAppInfo={installedApp}/>
  27. ): (
  28. <TextGenerationApp isInstalledApp installedAppInfo={installedApp}/>
  29. )}
  30. </div>
  31. )
  32. }
  33. export default React.memo(InstalledApp)