diff --git a/src/components/molecules/DisplayWhereConditionSettings.tsx b/src/components/molecules/DisplayWhereConditionSettings.tsx
new file mode 100644
index 00000000..98d63459
--- /dev/null
+++ b/src/components/molecules/DisplayWhereConditionSettings.tsx
@@ -0,0 +1,126 @@
+import React from "react";
+import { Dropdown as MuiDropdown } from "../atoms/DropdownMui";
+import { Checkbox, FormControlLabel, FormGroup, MenuItem, Stack, TextField } from "@mui/material";
+import { AddButton } from "../atoms/buttons/AddButton";
+import { RemoveButton } from "../atoms/buttons/RemoveButton";
+import { KeyValueForm } from "./KeyValueForm";
+import { WarningText } from "../atoms/texts";
+
+interface DisplayConditionSettingsProps {
+ whereProp: string;
+ additionalSettings: string;
+ setAdditionalSettings: (value: any) => void;
+ newValue: any;
+ setNewValue: (value: any) => void;
+ keyValueFormRef: React.RefObject<{getObject: () => object}>;
+ whereKeys: string[];
+ checked: boolean[];
+ setChecked: (value: boolean[]) => void;
+}
+
+export const DisplayConditionSettings = (
+ {whereProp, setAdditionalSettings, additionalSettings,
+ setNewValue, newValue, keyValueFormRef, whereKeys, checked, setChecked}
+ : DisplayConditionSettingsProps) => {
+ switch (whereProp) {
+ case 'url':
+ return (
+
+ setAdditionalSettings(e.target.value)}>
+
+
+
+ { additionalSettings ? setNewValue(e.target.value)}
+ value={newValue}
+ /> : null}
+
+ )
+ case 'selectors':
+ return (
+
+
+ {
+ newValue.map((selector: string, index: number) => {
+ return setNewValue([
+ ...newValue.slice(0, index),
+ e.target.value,
+ ...newValue.slice(index + 1)
+ ])}/>
+ })
+ }
+
+ setNewValue([...newValue, ''])}/>
+ {
+ const arr = newValue;
+ arr.splice(-1);
+ setNewValue([...arr]);
+ }}/>
+
+ )
+ case 'cookies':
+ return
+ case 'before':
+ return setNewValue(e.target.value)}
+ />
+ case 'after':
+ return setNewValue(e.target.value)}
+ />
+ case 'boolean':
+ return (
+
+ setAdditionalSettings(e.target.value)}>
+
+
+
+
+ {
+ whereKeys.map((key: string, index: number) => {
+ return (
+ setChecked([
+ ...checked.slice(0, index),
+ !checked[index],
+ ...checked.slice(index + 1)
+ ])}
+ key={`checkbox-${key}-${index}`}
+ />
+ } label={key} key={`control-label-form-${key}-${index}`}/>
+ )
+ })
+ }
+
+
+ Choose at least 2 where conditions. Nesting of boolean operators
+ is possible by adding more conditions.
+
+
+ )
+ default:
+ return null;
+ }
+}