diff --git a/web/src/components/EditUserCell/EditUserCell.js b/web/src/components/EditUserCell/EditUserCell.js index e678b4d..4fdf029 100644 --- a/web/src/components/EditUserCell/EditUserCell.js +++ b/web/src/components/EditUserCell/EditUserCell.js @@ -26,9 +26,9 @@ const UPDATE_USER_MUTATION = gql` } ` -export const Loading = () =>
Loading...
+export const Loading = () =>
Loading...
-export const Empty = () =>
Empty
+export const Empty = () =>
Empty
export const Failure = ({ error }) =>
Error: {error.message}
diff --git a/web/src/components/IdePartCell/IdePartCell.js b/web/src/components/IdePartCell/IdePartCell.js index bc91be8..581a032 100644 --- a/web/src/components/IdePartCell/IdePartCell.js +++ b/web/src/components/IdePartCell/IdePartCell.js @@ -1,6 +1,8 @@ import { useMutation, useFlash } from '@redwoodjs/web' import { navigate, routes } from '@redwoodjs/router' import IdeCascadeStudio from 'src/components/IdeCascadeStudio' +import { QUERY as UsersPartsQuery } from 'src/components/PartsOfUserCell' +import useUser from 'src/helpers/hooks/useUser' export const QUERY = gql` query FIND_PART_BY_USENAME_TITLE($partTitle: String!, $userName: String!) { @@ -45,12 +47,19 @@ export const Empty = () =>
Part not found
export const Success = ({ part, refetch }) => { const { addMessage } = useFlash() + const { user } = useUser() const [updatePart, { loading, error }] = useMutation(UPDATE_PART_MUTATION, { onCompleted: () => { addMessage('Part updated.', { classes: 'rw-flash-success' }) }, }) const [forkPart] = useMutation(FORK_PART_MUTATION, { + refetchQueries: [ + { + query: UsersPartsQuery, + variables: { userName: user?.userName }, + }, + ], onCompleted: ({ forkPart }) => { navigate( routes.ide({ diff --git a/web/src/components/IdeToolbar/IdeToolbar.js b/web/src/components/IdeToolbar/IdeToolbar.js index f923188..01160f0 100644 --- a/web/src/components/IdeToolbar/IdeToolbar.js +++ b/web/src/components/IdeToolbar/IdeToolbar.js @@ -11,6 +11,8 @@ import ImageUploader from 'src/components/ImageUploader' import Svg from '../Svg/Svg' import LoginModal from 'src/components/LoginModal' import { FORK_PART_MUTATION } from 'src/components/IdePartCell' +import { QUERY as UsersPartsQuery } from 'src/components/PartsOfUserCell' +import useUser from 'src/helpers/hooks/useUser' const IdeToolbar = ({ canEdit, @@ -27,9 +29,17 @@ const IdeToolbar = ({ const { isAuthenticated, currentUser } = useAuth() const showForkButton = !(canEdit || isDraft) const [title, setTitle] = useState('untitled-part') + const { user } = useUser() const { addMessage } = useFlash() - const [forkPart] = useMutation(FORK_PART_MUTATION) + const [forkPart] = useMutation(FORK_PART_MUTATION, { + refetchQueries: [ + { + query: UsersPartsQuery, + variables: { userName: userNamePart?.userName || user?.userName }, + }, + ], + }) const handleClick = ({ event, whichPopup }) => { setAnchorEl(event.currentTarget) @@ -145,7 +155,7 @@ const IdeToolbar = ({ )} - {isDraft && ( + {isDraft && isAuthenticated && (