Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter and Dropdown Buttons replaced with Customized Sorting Button #3225

Merged
Merged
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
1cb8471
sorting btn created
gautam-divyanshu Jan 2, 2025
6781e0f
tsdoc comment
gautam-divyanshu Jan 2, 2025
156a393
sortbtn in orglist & people
gautam-divyanshu Jan 2, 2025
3196389
sort btn in addMembers
gautam-divyanshu Jan 3, 2025
77980bb
orgTags
gautam-divyanshu Jan 3, 2025
10d2f5b
OrgVenues
gautam-divyanshu Jan 3, 2025
553ccff
orgActionItems with sort button
gautam-divyanshu Jan 3, 2025
2ed5d29
orgPost
gautam-divyanshu Jan 4, 2025
21305ac
block user
gautam-divyanshu Jan 4, 2025
63b570b
orgFunds
gautam-divyanshu Jan 5, 2025
9b70e82
dropdown removed from settings
gautam-divyanshu Jan 5, 2025
f5c9427
actionItemCategories
gautam-divyanshu Jan 5, 2025
00c4640
Event header
gautam-divyanshu Jan 5, 2025
8641d69
event attendance
gautam-divyanshu Jan 7, 2025
30ee974
volunteers
gautam-divyanshu Jan 7, 2025
16f2f94
grp volunteer
gautam-divyanshu Jan 7, 2025
cc7dd2d
vol. requests
gautam-divyanshu Jan 7, 2025
3cd1394
fund camp pledge
gautam-divyanshu Jan 8, 2025
f9449a5
manage tags
gautam-divyanshu Jan 8, 2025
f55be17
subtags
gautam-divyanshu Jan 8, 2025
79ef7aa
pledges
gautam-divyanshu Jan 9, 2025
1618f29
upcoming events in user portal
gautam-divyanshu Jan 9, 2025
fcce521
users
gautam-divyanshu Jan 9, 2025
10ff363
invitations
gautam-divyanshu Jan 9, 2025
9d92282
groups
gautam-divyanshu Jan 9, 2025
669e087
actions
gautam-divyanshu Jan 9, 2025
0355bfd
campaigns
gautam-divyanshu Jan 9, 2025
d978ed5
leaderboard
gautam-divyanshu Jan 9, 2025
71542d5
organizationFundCamp
gautam-divyanshu Jan 9, 2025
86df19c
css changed
gautam-divyanshu Jan 9, 2025
65efd33
color issue fixed
gautam-divyanshu Jan 9, 2025
4a94f87
resolved2
gautam-divyanshu Jan 9, 2025
b1186eb
eslint error removed
gautam-divyanshu Jan 9, 2025
38ef3ef
errors solved
gautam-divyanshu Jan 9, 2025
b454185
tsdoc commented
gautam-divyanshu Jan 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
block user
gautam-divyanshu committed Jan 4, 2025
commit 21305ac41b2010a252bf6c5f2ca20730c0378f18
12 changes: 6 additions & 6 deletions src/screens/BlockUser/BlockUser.spec.tsx
Original file line number Diff line number Diff line change
@@ -353,7 +353,7 @@ describe('Testing Block/Unblock user screen', () => {
);

userEvent.click(screen.getByTestId('userFilter'));
userEvent.click(screen.getByTestId('showMembers'));
userEvent.click(screen.getByTestId('allMembers'));
await wait();

expect(screen.getByTestId('unBlockUser123')).toBeInTheDocument();
@@ -383,7 +383,7 @@ describe('Testing Block/Unblock user screen', () => {
</MockedProvider>,
);
userEvent.click(screen.getByTestId('userFilter'));
userEvent.click(screen.getByTestId('showMembers'));
userEvent.click(screen.getByTestId('allMembers'));

await wait();

@@ -415,14 +415,14 @@ describe('Testing Block/Unblock user screen', () => {
);

userEvent.click(screen.getByTestId('userFilter'));
userEvent.click(screen.getByTestId('showBlockedMembers'));
userEvent.click(screen.getByTestId('blockedUsers'));
await wait();

expect(screen.getByText('John Doe')).toBeInTheDocument();
expect(screen.queryByText('Sam Smith')).not.toBeInTheDocument();

userEvent.click(screen.getByTestId('userFilter'));
userEvent.click(screen.getByTestId('showMembers'));
userEvent.click(screen.getByTestId('allMembers'));
await wait();

expect(screen.getByText('John Doe')).toBeInTheDocument();
@@ -459,7 +459,7 @@ describe('Testing Block/Unblock user screen', () => {
);

userEvent.click(screen.getByTestId('userFilter'));
userEvent.click(screen.getByTestId('showMembers'));
userEvent.click(screen.getByTestId('allMembers'));
await wait();

expect(screen.getByText('John Doe')).toBeInTheDocument();
@@ -508,7 +508,7 @@ describe('Testing Block/Unblock user screen', () => {
);

userEvent.click(screen.getByTestId('userFilter'));
userEvent.click(screen.getByTestId('showMembers'));
userEvent.click(screen.getByTestId('allMembers'));
await wait();

userEvent.click(screen.getByTestId('blockUser456'));
95 changes: 34 additions & 61 deletions src/screens/BlockUser/BlockUser.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { useMutation, useQuery } from '@apollo/client';
import React, { useEffect, useState, useCallback } from 'react';
import { Dropdown, Form, Table } from 'react-bootstrap';
import { Form, Table } from 'react-bootstrap';
import Button from 'react-bootstrap/Button';
import { toast } from 'react-toastify';

import { Search } from '@mui/icons-material';
import SortIcon from '@mui/icons-material/Sort';
import {
BLOCK_USER_MUTATION,
UNBLOCK_USER_MUTATION,
@@ -16,6 +15,7 @@ import { useTranslation } from 'react-i18next';
import { errorHandler } from 'utils/errorHandler';
import styles from '../../style/app.module.css';
import { useParams } from 'react-router-dom';
import SortingButton from 'subComponents/SortingButton';

interface InterfaceMember {
_id: string;
@@ -216,66 +216,39 @@ const Requests = (): JSX.Element => {
</div>
<div className={styles.btnsBlockBlockAndUnblock}>
<div className={styles.largeBtnsWrapper}>
{/* Dropdown for filtering members */}
<Dropdown aria-expanded="false" title="Sort organizations">
<Dropdown.Toggle
variant="success"
data-testid="userFilter"
className={`${styles.createButton} mt-2`}
>
<SortIcon className={'me-1'} />
{showBlockedMembers ? t('blockedUsers') : t('allMembers')}
</Dropdown.Toggle>
<Dropdown.Menu>
<Dropdown.Item
active={!showBlockedMembers}
className={styles.dropdownItem}
data-testid="showMembers"
onClick={(): void => setShowBlockedMembers(false)}
>
{t('allMembers')}
</Dropdown.Item>
<Dropdown.Item
active={showBlockedMembers}
className={styles.dropdownItem}
data-testid="showBlockedMembers"
onClick={(): void => setShowBlockedMembers(true)}
>
{t('blockedUsers')}
</Dropdown.Item>
</Dropdown.Menu>
</Dropdown>
{/* Dropdown for sorting by name */}
<Dropdown aria-expanded="false">
<Dropdown.Toggle
variant="success"
data-testid="nameFilter"
className={`${styles.createButton} mt-2`}
>
<SortIcon className={'me-1'} />
{searchByFirstName
<SortingButton
title={t('sortOrganizations')}
sortingOptions={[
{ label: t('allMembers'), value: 'allMembers' },
{ label: t('blockedUsers'), value: 'blockedUsers' },
]}
selectedOption={
showBlockedMembers ? t('blockedUsers') : t('allMembers')
}
onSortChange={(value) =>
setShowBlockedMembers(value === 'blockedUsers')
}
dataTestIdPrefix="userFilter"
className={`${styles.createButton} mt-2`}
/>

<SortingButton
title={t('sortByName')}
sortingOptions={[
{ label: t('searchByFirstName'), value: 'searchByFirstName' },
{ label: t('searchByLastName'), value: 'searchByLastName' },
]}
selectedOption={
searchByFirstName
? t('searchByFirstName')
: t('searchByLastName')}
</Dropdown.Toggle>
<Dropdown.Menu>
<Dropdown.Item
active={searchByFirstName}
data-testid="searchByFirstName"
className={styles.dropdownItem}
onClick={(): void => setSearchByFirstName(true)}
>
{t('searchByFirstName')}
</Dropdown.Item>
<Dropdown.Item
active={!searchByFirstName}
className={styles.dropdownItem}
data-testid="searchByLastName"
onClick={(): void => setSearchByFirstName(false)}
>
{t('searchByLastName')}
</Dropdown.Item>
</Dropdown.Menu>
</Dropdown>
: t('searchByLastName')
}
onSortChange={(value) =>
setSearchByFirstName(value === 'searchByFirstName')
}
dataTestIdPrefix="nameFilter"
className={`${styles.createButton} mt-2`}
/>
</div>
</div>
</div>