Skip to content

Commit

Permalink
Merge pull request #650 from goinvo/fixFeedbackMessage
Browse files Browse the repository at this point in the history
Fix feedback message
  • Loading branch information
zhukovdigital authored Jan 30, 2025
2 parents 9db6369 + 237fb05 commit f3efb29
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 44 deletions.
23 changes: 16 additions & 7 deletions app/components/userAssignment/userAssignmentRow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { useMutation } from "@apollo/client";
import { UPSERT_ASSIGNMENT } from "../../gqlQueries";
import { useUserDataContext } from "@/app/contexts/userDataContext";
import UndoRow from "../undoRow";
import { UNDO_ARCHIVED_PROJECT_SUBTITLE, UNDO_ARCHIVED_PROJECT_TITLE } from "../constants/undoModifyStrings";
import { UNDO_ARCHIVED_OR_DELETED_PROJECT, UNDO_ARCHIVED_PROJECT_SUBTITLE, UNDO_ARCHIVED_PROJECT_TITLE } from "../constants/undoModifyStrings";
import { useFadeInOutRow } from "@/app/hooks/useFadeInOutRow";
import { mergeClasses } from "@/app/helperFunctions";
import { useProjectsDataContext } from "@/app/contexts/projectsDataContext";
Expand Down Expand Up @@ -46,7 +46,7 @@ export const UserAssignmentRow = ({
totalRows
}: UserAssignmentRowProps) => {
const router = useRouter();
const { sortBy, newProjectAssignmentId, setNewProjectAssignmentId, setUserList, refetchUserList, viewsFilterSingleUser, assignmentsWithUndoActions, undoModifyAssignment } = useUserDataContext()
const { deleteAssignment, sortBy, newProjectAssignmentId, setNewProjectAssignmentId, setUserList, refetchUserList, viewsFilterSingleUser, assignmentsWithUndoActions, undoModifyAssignment } = useUserDataContext()
const { setProjectList, undoModifyProject, projectsWithUndoActions } = useProjectsDataContext()

const [showUndoRow, setShowUndoRow] = useState<boolean>(false);
Expand Down Expand Up @@ -162,11 +162,20 @@ export const UserAssignmentRow = ({
}, [projectsWithUndoActions, assignment.project.id]);

if (showUndoRow) {
return (
<tr ref={undoRowRef} className="flex justify-center" key={`undo-${assignment.project.id}`}>
<UndoRow onClick={handleUndoModifyProject} title={UNDO_ARCHIVED_PROJECT_TITLE} subtitle={UNDO_ARCHIVED_PROJECT_SUBTITLE} />
</tr>
)
if (deleteAssignment === "archive") {
return (
<tr ref={undoRowRef} className="flex justify-center" key={`undo-${assignment.project.id}`}>
<UndoRow onClick={handleUndoModifyProject} title={UNDO_ARCHIVED_PROJECT_TITLE} subtitle={UNDO_ARCHIVED_PROJECT_SUBTITLE} />
</tr>
)
}
if (deleteAssignment === "deleteMe") {
return (
<tr ref={undoRowRef} className="flex justify-center" key={`undo-${assignment.id}`}>
<UndoRow onClick={handleUndoModifyAssignment} title={UNDO_ARCHIVED_OR_DELETED_PROJECT} />
</tr>
)
}
}

const sortedByClient = sortBy === "Client";
Expand Down
12 changes: 9 additions & 3 deletions app/components/userAssignment/userLabel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { convertProjectToCSV } from "@/app/helperFunctions";
export const UserLabel = ({ assignment, selectedUser, clickHandler, undoRowRef, isFirstClient }: UserLabelProps) => {
const { openModal, closeModal } = useModal();
const client = useApolloClient()
const { setSingleUserPage, setUserList, enqueueTimer, refetchUserList } = useUserDataContext()
const { setSingleUserPage, setUserList, enqueueTimer, refetchUserList, setDeleteAssignment } = useUserDataContext()
const { enqueueTimer: enqueueProjectTimer } = useProjectsDataContext();
const { viewer } = useGeneralDataContext()
const { refetchClientList } = useClientDataContext()
Expand Down Expand Up @@ -356,13 +356,19 @@ export const UserLabel = ({ assignment, selectedUser, clickHandler, undoRowRef,
show: true,
},
{
component: <button onClick={handleDeleteAssignmentClick} className="block w-full px-4 py-2 text-sm text-left text-[#FF5E5E] border-t border-t-[#E5E7EB]">Delete me from this project</button>,
component: <button onClick={() => {
setDeleteAssignment("deleteMe");
handleDeleteAssignmentClick()
}} className="block w-full px-4 py-2 text-sm text-left text-[#FF5E5E] border-t border-t-[#E5E7EB]">Delete me from this project</button>,
show: showDeleteButton,
},
{
component: (
<button
onClick={() => { handleArchiveProjectClick(assignment.project) }}
onClick={() => {
setDeleteAssignment("archive");
handleArchiveProjectClick(assignment.project)
}}
className="block w-full px-4 py-2 text-sm text-left text-[#FF5E5E] border-t border-t-[#E5E7EB]"
>
Archive project for everyone
Expand Down
73 changes: 39 additions & 34 deletions app/contexts/userDataContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ type EnqueueTimerParams = {
finalApiCall?: () => void;
};
export interface UserDataContextType {
deleteAssignment: 'archive' | 'deleteMe' | '';
newProjectAssignmentId: number | null;
userList: UserType[] | [];
filteredUserList: UserType[] | [];
Expand All @@ -27,6 +28,7 @@ export interface UserDataContextType {
viewsFilterPeople: string;
viewsFilterSingleUser: string;
assignmentsWithUndoActions: UndoableModifiedAssignment[]
setDeleteAssignment: React.Dispatch<React.SetStateAction<'archive' | 'deleteMe' | ''>>;
setNewProjectAssignmentId: React.Dispatch<React.SetStateAction<number | null>>;
undoModifyAssignment: (assignmentId: number) => void;
setViewsFilterSingleUser: React.Dispatch<React.SetStateAction<string>>;
Expand Down Expand Up @@ -57,6 +59,7 @@ export const useUserDataContext = () => {
export const UserListProvider: React.FC<{ children?: ReactNode; initialData?: any }> = ({ children }) => {
const client = useApolloClient();
const isClient = typeof window !== "undefined";
const [deleteAssignment, setDeleteAssignment] = useState<'archive' | 'deleteMe' | ''>('')
const [newProjectAssignmentId, setNewProjectAssignmentId] = useState<number | null>(null);
const [userList, setUserList] = useState<UserType[] | []>([]);
const [filteredUserList, setFilteredUserList] = useState<UserType[] | []>([]);
Expand Down Expand Up @@ -185,40 +188,42 @@ export const UserListProvider: React.FC<{ children?: ReactNode; initialData?: an
};

return (
<PrefabProvider
apiKey={process.env.NEXT_PUBLIC_PREFAB_API_KEY}
contextAttributes={contextAttributes}
onError={onPrefabError}
<PrefabProvider
apiKey={process.env.NEXT_PUBLIC_PREFAB_API_KEY}
contextAttributes={contextAttributes}
onError={onPrefabError}
>
<UserDataContext.Provider
value={{
deleteAssignment,
newProjectAssignmentId,
userList,
filteredUserList,
singleUserPage,
sortOrder,
sortBy,
viewsFilterPeople,
viewsFilterSingleUser,
assignmentsWithUndoActions,
setDeleteAssignment,
setNewProjectAssignmentId,
handleFinalDelete,
undoModifyAssignment,
setViewsFilterSingleUser,
setSortOrder,
setSortBy,
setViewsFilterPeople,
setUserList,
setFilteredUserList,
setSingleUserPage,
refetchUserList,
sortUserList,
setSelectedUserData,
enqueueTimer,
}}
>
<UserDataContext.Provider
value={{
newProjectAssignmentId,
userList,
filteredUserList,
singleUserPage,
sortOrder,
sortBy,
viewsFilterPeople,
viewsFilterSingleUser,
assignmentsWithUndoActions,
setNewProjectAssignmentId,
handleFinalDelete,
undoModifyAssignment,
setViewsFilterSingleUser,
setSortOrder,
setSortBy,
setViewsFilterPeople,
setUserList,
setFilteredUserList,
setSingleUserPage,
refetchUserList,
sortUserList,
setSelectedUserData,
enqueueTimer,
}}
>
{children}
</UserDataContext.Provider>
</PrefabProvider>
{children}
</UserDataContext.Provider>
</PrefabProvider>
);
};

0 comments on commit f3efb29

Please sign in to comment.