diff --git a/src/components/posts/editor/ModalEditor.tsx b/src/components/posts/editor/ModalEditor.tsx index 78b862b31..614b2e919 100644 --- a/src/components/posts/editor/ModalEditor.tsx +++ b/src/components/posts/editor/ModalEditor.tsx @@ -158,8 +158,10 @@ export const PostEditorModalBody = ({ const goToPostPage = (postId: AnyId) => { const content = getFieldValues() as PostContent const postData = { struct: { id: postId.toString() }, content } + + const url = postUrl({ id: spaceId! }, postData) router - .push('/[spaceId]/[slug]', postUrl({ id: spaceId! }, postData)) + .push('/[spaceId]/[slug]', url + '?source=chain') .catch(err => log.error(`Failed to redirect to a post page. ${err}`)) } diff --git a/src/components/posts/editor/index.tsx b/src/components/posts/editor/index.tsx index 486892f79..8052102ca 100644 --- a/src/components/posts/editor/index.tsx +++ b/src/components/posts/editor/index.tsx @@ -129,8 +129,10 @@ function EditPostForm(props: PostFormProps) { const goToPostPage = (postId: AnyId) => { const content = getFieldValues() as PostContent const postData = { struct: { id: postId.toString() }, content } + + const url = postUrl({ id: spaceForPost! }, postData) router - .push('/[spaceId]/[slug]', postUrl({ id: spaceForPost! }, postData)) + .push('/[spaceId]/[slug]', url + '?source=chain') .catch(err => log.error(`Failed to redirect to a post page. ${err}`)) } diff --git a/src/components/posts/view-post/PostPage.tsx b/src/components/posts/view-post/PostPage.tsx index 419fec325..696291398 100644 --- a/src/components/posts/view-post/PostPage.tsx +++ b/src/components/posts/view-post/PostPage.tsx @@ -32,7 +32,7 @@ import { useIsPostBlocked } from 'src/rtk/features/moderation/hooks' import { fetchPost, fetchPosts, selectPost } from 'src/rtk/features/posts/postsSlice' import { fetchPostsViewCount } from 'src/rtk/features/posts/postsViewCountSlice' import { useFetchMyReactionsByPostId } from 'src/rtk/features/reactions/myPostReactionsHooks' -import { asCommentStruct, HasStatusCode, idToBn, PostData, PostWithSomeDetails } from 'src/types' +import { asCommentStruct, DataSourceTypes, HasStatusCode, idToBn, PostData, PostWithSomeDetails } from 'src/types' import { DfImage } from '../../utils/DfImage' import { DfMd } from '../../utils/DfMd' import Section from '../../utils/Section' @@ -275,7 +275,7 @@ export async function loadPostOnNextReq({ reduxStore, }: NextContextWithRedux): Promise { const { - query: { slug }, + query: { slug, source }, res, asPath, } = context @@ -290,7 +290,13 @@ export async function loadPostOnNextReq({ async function getPost() { const replyIds = await blockchain.getReplyIdsByPostId(idToBn(postId!)) const ids = replyIds.concat(postId!) - await dispatch(fetchPosts({ api: subsocial, ids, reload: true, eagerLoadHandles: true })) + await dispatch(fetchPosts({ + api: subsocial, + ids, + reload: true, + eagerLoadHandles: true, + dataSource: source === 'chain' ? DataSourceTypes.CHAIN : DataSourceTypes.SQUID + })) } await Promise.all([getPost(), dispatch(fetchBlockedResources({ appId }))]) const postData = selectPost(reduxStore.getState(), { id: postId }) diff --git a/src/components/spaces/helpers/loadSpaceOnNextReq.ts b/src/components/spaces/helpers/loadSpaceOnNextReq.ts index 43ca016b9..2df51e8fa 100644 --- a/src/components/spaces/helpers/loadSpaceOnNextReq.ts +++ b/src/components/spaces/helpers/loadSpaceOnNextReq.ts @@ -12,7 +12,7 @@ export async function loadSpaceOnNextReq( ): Promise { const { context, subsocial, dispatch, reduxStore } = props const { query, res } = context - const { spaceId } = query + const { spaceId, source } = query const idOrHandle = spaceId as string try { @@ -29,7 +29,7 @@ export async function loadSpaceOnNextReq( id: idStr, reload: true, eagerLoadHandles: true, - dataSource: DataSourceTypes.CHAIN, + dataSource: source === 'chain' ? DataSourceTypes.CHAIN : DataSourceTypes.SQUID, }), ) const spaceData = selectSpace(reduxStore.getState(), { id: idStr }) diff --git a/src/components/urls/goToPage.ts b/src/components/urls/goToPage.ts index 40da683b7..e1fcbc0c3 100644 --- a/src/components/urls/goToPage.ts +++ b/src/components/urls/goToPage.ts @@ -7,7 +7,7 @@ import { createNewPostLinkProps } from '../spaces/helpers' const log = newLogger('Go to page') export function goToSpacePage(spaceId: AnyId, isFirstSpace?: boolean) { - const params = isFirstSpace ? '?isFirst' : '' + const params = `?source=chain${isFirstSpace ? '&isFirst' : ''}` Router.push('/[spaceId]', `/${spaceId.toString()}${params}`).catch(err => log.error('Failed to redirect to "View Space" page:', err), diff --git a/src/rtk/features/contents/contentsSlice.ts b/src/rtk/features/contents/contentsSlice.ts index 5e11169c4..ebaf15097 100644 --- a/src/rtk/features/contents/contentsSlice.ts +++ b/src/rtk/features/contents/contentsSlice.ts @@ -66,7 +66,7 @@ export const fetchContents = createAsyncThunk< unknownFlagAttr: 'isOverview', }, getData: async ({ api, newIds }) => { - const timeoutMs = 10_000 + const timeoutMs = 3_000 let contents = await api.ipfs.getContentArray(newIds as string[], timeoutMs) return Object.entries(contents) .map(([id, content]) => {