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

chore: Enhancing filters #1590

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
26 changes: 16 additions & 10 deletions src/screens/Disputes/DisputesUtils.res
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,13 @@ let initialFixedFilter = () => [
),
]

let getValueFromFilterType = (filter: filter) => {
switch filter {
| #connector_label => "merchant_connector_id"
| _ => (filter :> string)
}
}

let getConditionalFilter = (key, dict, filterValues) => {
switch key->getFilterTypeFromString {
| #connector_label =>
Expand Down Expand Up @@ -193,14 +200,18 @@ let itemToObjMapper = dict => {
}
}

let initialFilters = (json, filtervalues) => {
let connectorFilter = filtervalues->getArrayFromDict("connector", [])->getStrArrayFromJsonArray

let initialFilters = (json, filtervalues, setfilterKeys, filterKeys) => {
let filterDict = json->getDictFromJsonObject
let arr = filterDict->Dict.keysToArray->Array.filter(item => item != "currency")

let connectorFilter = filtervalues->getArrayFromDict("connector", [])->getStrArrayFromJsonArray
if connectorFilter->Array.length !== 0 {
arr->Array.push("connector_label")
arr->Array.push((#connector_label: filter :> string))

if !(filterKeys->Array.includes(getValueFromFilterType(#connector_label))) {
filterKeys->Array.push(getValueFromFilterType(#connector_label))
setfilterKeys(_ => filterKeys)
}
}

let filterArr = filterDict->itemToObjMapper
Expand All @@ -222,15 +233,10 @@ let initialFilters = (json, filtervalues) => {
| _ => values->FilterSelectBox.makeOptions
}

let name = switch key->getFilterTypeFromString {
| #connector_label => "merchant_connector_id"
| _ => key
}

{
field: FormRenderer.makeFieldInfo(
~label=key,
~name,
~name=getValueFromFilterType(key->getFilterTypeFromString),
~customInput=InputFields.filterMultiSelectInput(
~options,
~buttonText=title,
Expand Down
4 changes: 2 additions & 2 deletions src/screens/HSwitchRemoteFilter.res
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ module RemoteTableFilters = {
let getURL = useGetURL()
let {userInfo: transactionEntity} = React.useContext(UserInfoProvider.defaultContext)

let {filterValue, updateExistingKeys, filterValueJson, reset} =
let {filterValue, updateExistingKeys, filterValueJson, reset, setfilterKeys, filterKeys} =
FilterContext.filterContext->React.useContext
let defaultFilters = {""->JSON.Encode.string}
let showToast = ToastState.useShowToast()
Expand Down Expand Up @@ -233,7 +233,7 @@ module RemoteTableFilters = {
->Dict.fromArray

let remoteFilters = React.useMemo(() => {
filterData->initialFilters(getAllFilter)
filterData->initialFilters(getAllFilter, setfilterKeys, filterKeys)
}, [getAllFilter])

let initialDisplayFilters =
Expand Down
28 changes: 17 additions & 11 deletions src/screens/Order/OrderUIUtils.res
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,13 @@ let filterByData = (txnArr, value) => {
})
}

let getValueFromFilterType = (filter: filter) => {
switch filter {
| #connector_label => "merchant_connector_id"
| _ => (filter :> string)
}
}

let getConditionalFilter = (key, dict, filterValues) => {
open LogicUtils

Expand Down Expand Up @@ -265,19 +272,23 @@ let itemToObjMapper = dict => {
}
}

let initialFilters = (json, filtervalues) => {
let initialFilters = (json, filtervalues, setfilterKeys, filterKeys) => {
open LogicUtils

let connectorFilter = filtervalues->getArrayFromDict("connector", [])->getStrArrayFromJsonArray

let filterDict = json->getDictFromJsonObject
let filterArr = filterDict->itemToObjMapper
let arr = filterDict->Dict.keysToArray

let connectorFilter = filtervalues->getArrayFromDict("connector", [])->getStrArrayFromJsonArray
if connectorFilter->Array.length !== 0 {
arr->Array.push("connector_label")
arr->Array.push((#connector_label: filter :> string))

if !(filterKeys->Array.includes(getValueFromFilterType(#connector_label))) {
filterKeys->Array.push(getValueFromFilterType(#connector_label))
setfilterKeys(_ => filterKeys)
}
}
arr->Array.push("payment_method_type")
arr->Array.push((#payment_method_type: filter :> string))

arr->Array.map((key): EntityType.initialFilters<'t> => {
let values = switch key->getFilterTypeFromString {
Expand Down Expand Up @@ -308,15 +319,10 @@ let initialFilters = (json, filtervalues) => {
| _ => values->makeOptions
}

let name = switch key->getFilterTypeFromString {
| #connector_label => "merchant_connector_id"
| _ => key
}

{
field: FormRenderer.makeFieldInfo(
~label=key,
~name,
~name=getValueFromFilterType(key->getFilterTypeFromString),
~customInput=InputFields.filterMultiSelectInput(
~options,
~buttonText=title,
Expand Down
2 changes: 1 addition & 1 deletion src/screens/Payouts/PayoutsUtils.res
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ let getOptionsForPayoutFilters = (dict, filterValues) => {
newArr
}

let initialFilters = (json, _) => {
let initialFilters = (json, _, _, _) => {
open LogicUtils

let dropdownValue =
Expand Down
27 changes: 17 additions & 10 deletions src/screens/Refunds/RefundUtils.res
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,14 @@ let initialFixedFilter = () => [
),
]

let getValueFromFilterType = (filter: filter) => {
switch filter {
| #connector_label => "merchant_connector_id"
| #status => "refund_status"
| _ => (filter :> string)
}
}

let getConditionalFilter = (key, dict, filterValues) => {
open LogicUtils

Expand Down Expand Up @@ -185,16 +193,20 @@ let itemToObjMapper = dict => {
}
}

let initialFilters = (json, filtervalues) => {
let initialFilters = (json, filtervalues, setfilterKeys, filterKeys) => {
open LogicUtils

let connectorFilter = filtervalues->getArrayFromDict("connector", [])->getStrArrayFromJsonArray

let filterDict = json->getDictFromJsonObject
let arr = filterDict->Dict.keysToArray->Array.filterWithIndex((_item, index) => index <= 2)

let connectorFilter = filtervalues->getArrayFromDict("connector", [])->getStrArrayFromJsonArray
if connectorFilter->Array.length !== 0 {
arr->Array.push("connector_label")
arr->Array.push((#connector_label: filter :> string))

if !(filterKeys->Array.includes(getValueFromFilterType(#connector_label))) {
filterKeys->Array.push(getValueFromFilterType(#connector_label))
setfilterKeys(_ => filterKeys)
}
}

let filterArr = filterDict->itemToObjMapper
Expand All @@ -215,15 +227,10 @@ let initialFilters = (json, filtervalues) => {
| _ => values->FilterSelectBox.makeOptions
}

let name = switch key->getFilterTypeFromString {
| #connector_label => "merchant_connector_id"
| _ => key
}

{
field: FormRenderer.makeFieldInfo(
~label=key,
~name,
~name=getValueFromFilterType(key->getFilterTypeFromString),
~customInput=InputFields.filterMultiSelectInput(
~options,
~buttonText=title,
Expand Down
Loading