TWNTY-3794 - ESLint rule: only take explicit boolean predicates in if statements (#4354)
* ESLint rule: only take explicit boolean predicates in if statements Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Merge main Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix frontend linter errors Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix jest Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Refactor according to review Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Refactor according to review Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix lint on new code Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> --------- Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com> Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>
This commit is contained in:
committed by
GitHub
parent
40bea0d95e
commit
17511be0cf
@ -8,6 +8,7 @@ import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
||||
import { EditableFilterChip } from '@/views/components/EditableFilterChip';
|
||||
import { useViewBar } from '@/views/hooks/useViewBar';
|
||||
import { ViewFilter } from '@/views/types/ViewFilter';
|
||||
import { isNonNullable } from '~/utils/isNonNullable';
|
||||
|
||||
type EditableFilterDropdownButtonProps = {
|
||||
viewFilterDropdownId: string;
|
||||
@ -39,7 +40,7 @@ export const EditableFilterDropdownButton = ({
|
||||
filterDefinition.fieldMetadataId === viewFilter.fieldMetadataId,
|
||||
);
|
||||
|
||||
if (filterDefinition) {
|
||||
if (isNonNullable(filterDefinition)) {
|
||||
setFilterDefinitionUsedInDropdown(filterDefinition);
|
||||
setSelectedOperandInDropdown(viewFilter.operand);
|
||||
setSelectedFilter(viewFilter);
|
||||
|
||||
@ -7,6 +7,8 @@ import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
|
||||
import { useViewBar } from '@/views/hooks/useViewBar';
|
||||
import { GraphQLView } from '@/views/types/GraphQLView';
|
||||
import { isDeeplyEqual } from '~/utils/isDeeplyEqual';
|
||||
import { isNonNullable } from '~/utils/isNonNullable';
|
||||
import { isNullable } from '~/utils/isNullable';
|
||||
|
||||
import { useViewScopedStates } from '../hooks/internal/useViewScopedStates';
|
||||
|
||||
@ -50,11 +52,11 @@ export const ViewBarEffect = () => {
|
||||
newViews[0] ??
|
||||
null;
|
||||
|
||||
if (!currentView) return;
|
||||
if (isNullable(currentView)) return;
|
||||
|
||||
setCurrentViewId(currentView.id);
|
||||
|
||||
if (currentView?.viewFields) {
|
||||
if (isNonNullable(currentView?.viewFields)) {
|
||||
loadViewFields(currentView.viewFields, currentView.id);
|
||||
loadViewFilters(currentView.viewFilters, currentView.id);
|
||||
loadViewSorts(currentView.viewSorts, currentView.id);
|
||||
|
||||
@ -5,6 +5,7 @@ import { useRecoilValue } from 'recoil';
|
||||
import { useFilterDropdown } from '@/object-record/object-filter-dropdown/hooks/useFilterDropdown';
|
||||
import { Filter } from '@/object-record/object-filter-dropdown/types/Filter';
|
||||
import { useViewScopedStates } from '@/views/hooks/internal/useViewScopedStates';
|
||||
import { isNonNullable } from '~/utils/isNonNullable';
|
||||
|
||||
type ViewBarFilterEffectProps = {
|
||||
filterDropdownId: string;
|
||||
@ -31,11 +32,11 @@ export const ViewBarFilterEffect = ({
|
||||
} = useFilterDropdown({ filterDropdownId });
|
||||
|
||||
useEffect(() => {
|
||||
if (availableFilterDefinitions) {
|
||||
if (isNonNullable(availableFilterDefinitions)) {
|
||||
setAvailableFilterDefinitions(availableFilterDefinitions);
|
||||
}
|
||||
|
||||
if (onFilterSelect) {
|
||||
if (isNonNullable(onFilterSelect)) {
|
||||
setOnFilterSelect(() => onFilterSelect);
|
||||
}
|
||||
}, [
|
||||
|
||||
@ -4,6 +4,7 @@ import { useRecoilValue } from 'recoil';
|
||||
import { useSortDropdown } from '@/object-record/object-sort-dropdown/hooks/useSortDropdown';
|
||||
import { Sort } from '@/object-record/object-sort-dropdown/types/Sort';
|
||||
import { useViewScopedStates } from '@/views/hooks/internal/useViewScopedStates';
|
||||
import { isNonNullable } from '~/utils/isNonNullable';
|
||||
|
||||
type ViewBarSortEffectProps = {
|
||||
sortDropdownId: string;
|
||||
@ -25,10 +26,10 @@ export const ViewBarSortEffect = ({
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
if (availableSortDefinitions) {
|
||||
if (isNonNullable(availableSortDefinitions)) {
|
||||
setAvailableSortDefinitions(availableSortDefinitions);
|
||||
}
|
||||
if (onSortSelect) {
|
||||
if (isNonNullable(onSortSelect)) {
|
||||
setOnSortSelect(() => onSortSelect);
|
||||
}
|
||||
}, [
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { useMemo } from 'react';
|
||||
import { useParams, useSearchParams } from 'react-router-dom';
|
||||
import { useApolloClient } from '@apollo/client';
|
||||
import { isNonEmptyString } from '@sniptt/guards';
|
||||
import qs from 'qs';
|
||||
import { useRecoilCallback } from 'recoil';
|
||||
import z from 'zod';
|
||||
@ -15,6 +16,7 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord';
|
||||
import { ViewFilter } from '@/views/types/ViewFilter';
|
||||
import { ViewFilterOperand } from '@/views/types/ViewFilterOperand';
|
||||
import { isNonNullable } from '~/utils/isNonNullable';
|
||||
import { isNullable } from '~/utils/isNullable';
|
||||
|
||||
const filterQueryParamsSchema = z.object({
|
||||
filter: z.record(
|
||||
@ -69,7 +71,7 @@ export const useFiltersFromQueryParams = () => {
|
||||
field: fieldMetadataItem,
|
||||
});
|
||||
|
||||
if (!filterDefinition) return null;
|
||||
if (isNullable(filterDefinition)) return null;
|
||||
|
||||
const relationObjectMetadataNameSingular =
|
||||
fieldMetadataItem.toRelationMetadata?.fromObjectMetadata
|
||||
@ -94,8 +96,8 @@ export const useFiltersFromQueryParams = () => {
|
||||
const relationRecordNames = [];
|
||||
|
||||
if (
|
||||
relationObjectMetadataNamePlural &&
|
||||
relationObjectMetadataItem &&
|
||||
isNonEmptyString(relationObjectMetadataNamePlural) &&
|
||||
isNonNullable(relationObjectMetadataItem) &&
|
||||
Array.isArray(filterValueFromURL)
|
||||
) {
|
||||
const queryResult = await apolloClient.query<
|
||||
|
||||
@ -8,6 +8,7 @@ import { Sort } from '@/object-record/object-sort-dropdown/types/Sort';
|
||||
import { savedViewSortsScopedFamilyState } from '@/views/states/savedViewSortsScopedFamilyState';
|
||||
import { ViewSort } from '@/views/types/ViewSort';
|
||||
import { getViewScopedStateValuesFromSnapshot } from '@/views/utils/getViewScopedStateValuesFromSnapshot';
|
||||
import { isNullable } from '~/utils/isNullable';
|
||||
|
||||
import { useViewScopedStates } from './useViewScopedStates';
|
||||
|
||||
@ -42,7 +43,7 @@ export const useViewSorts = (viewScopeId: string) => {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!currentViewSorts) {
|
||||
if (isNullable(currentViewSorts)) {
|
||||
return;
|
||||
}
|
||||
if (!savedViewSortsByKey) {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { useCallback } from 'react';
|
||||
import { useSearchParams } from 'react-router-dom';
|
||||
import { isNonEmptyString } from '@sniptt/guards';
|
||||
import { useRecoilCallback, useRecoilState, useSetRecoilState } from 'recoil';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
@ -9,6 +10,7 @@ import { ViewFilter } from '@/views/types/ViewFilter';
|
||||
import { ViewSort } from '@/views/types/ViewSort';
|
||||
import { isDeeplyEqual } from '~/utils/isDeeplyEqual';
|
||||
import { isNonNullable } from '~/utils/isNonNullable';
|
||||
import { isNullable } from '~/utils/isNullable';
|
||||
|
||||
import { ViewScopeInternalContext } from '../scopes/scope-internal-context/ViewScopeInternalContext';
|
||||
import { currentViewFieldsScopedFamilyState } from '../states/currentViewFieldsScopedFamilyState';
|
||||
@ -112,7 +114,7 @@ export const useViewBar = (props?: UseViewProps) => {
|
||||
viewId: currentViewId,
|
||||
});
|
||||
|
||||
if (!availableFieldDefinitions) {
|
||||
if (isNullable(availableFieldDefinitions)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -152,7 +154,7 @@ export const useViewBar = (props?: UseViewProps) => {
|
||||
viewId: currentViewId,
|
||||
});
|
||||
|
||||
if (!availableFilterDefinitions) {
|
||||
if (isNullable(availableFilterDefinitions)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -267,11 +269,11 @@ export const useViewBar = (props?: UseViewProps) => {
|
||||
viewScopeId: scopeId,
|
||||
});
|
||||
|
||||
if (savedViewFilters) {
|
||||
if (isNonNullable(savedViewFilters)) {
|
||||
set(currentViewFiltersState, savedViewFilters);
|
||||
onViewFiltersChange?.(savedViewFilters);
|
||||
}
|
||||
if (savedViewSorts) {
|
||||
if (isNonNullable(savedViewSorts)) {
|
||||
set(currentViewSortsState, savedViewSorts);
|
||||
onViewSortsChange?.(savedViewSorts);
|
||||
}
|
||||
@ -388,7 +390,7 @@ export const useViewBar = (props?: UseViewProps) => {
|
||||
return;
|
||||
}
|
||||
|
||||
if (viewEditMode === 'create' && name) {
|
||||
if (viewEditMode === 'create' && isNonEmptyString(name)) {
|
||||
await createView(name);
|
||||
|
||||
// Temporary to force refetch
|
||||
|
||||
@ -3,6 +3,7 @@ import { ColumnDefinition } from '@/object-record/record-table/types/ColumnDefin
|
||||
import { mapArrayToObject } from '~/utils/array/mapArrayToObject';
|
||||
import { moveArrayItem } from '~/utils/array/moveArrayItem';
|
||||
import { isNonNullable } from '~/utils/isNonNullable';
|
||||
import { isNullable } from '~/utils/isNullable';
|
||||
|
||||
import { ViewField } from '../types/ViewField';
|
||||
|
||||
@ -25,11 +26,11 @@ export const mapViewFieldsToColumnDefinitions = ({
|
||||
const correspondingColumnDefinition =
|
||||
columnDefinitionsByFieldMetadataId[viewField.fieldMetadataId];
|
||||
|
||||
if (!correspondingColumnDefinition) return null;
|
||||
if (isNullable(correspondingColumnDefinition)) return null;
|
||||
|
||||
const { isLabelIdentifier } = correspondingColumnDefinition;
|
||||
|
||||
if (isLabelIdentifier) {
|
||||
if (isLabelIdentifier === true) {
|
||||
labelIdentifierFieldMetadataId =
|
||||
correspondingColumnDefinition.fieldMetadataId;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user