Fix allow click on webhook checkbox (#3327)

This commit is contained in:
Krzysztof Żuraw 2023-03-13 11:55:03 +01:00 committed by GitHub
parent 831b5748e2
commit 93c2459013
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 47 additions and 20 deletions

View file

@ -46,7 +46,7 @@ const DryRun: React.FC<DryRunProps> = ({
syncEvents, syncEvents,
}: DryRunProps) => { }: DryRunProps) => {
const intl = useIntl(); const intl = useIntl();
const classes = useStyles(); const classes = useStyles({});
const [objectId, setObjectId] = useState<string | null>(null); const [objectId, setObjectId] = useState<string | null>(null);
const [triggerWebhookDryRun] = useTriggerWebhookDryRunMutation(); const [triggerWebhookDryRun] = useTriggerWebhookDryRunMutation();
const availableObjects = Object.keys(DocumentMap).map(object => const availableObjects = Object.keys(DocumentMap).map(object =>

View file

@ -31,7 +31,7 @@ const DryRunItemsList: React.FC<DryRunItemsListProps> = ({
setObjectId, setObjectId,
}: DryRunItemsListProps) => { }: DryRunItemsListProps) => {
const intl = useIntl(); const intl = useIntl();
const classes = useStyles(); const classes = useStyles({});
const { checkbox } = useListWidths(); const { checkbox } = useListWidths();
const objectDocument = DocumentMap[object]; const objectDocument = DocumentMap[object];
const objectCollection = const objectCollection =

View file

@ -44,8 +44,8 @@ const WebhookEvents: React.FC<WebhookEventsProps> = ({
onAsyncEventChange, onAsyncEventChange,
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
const classes = useStyles();
const { checkbox } = useListWidths(); const { checkbox } = useListWidths();
const classes = useStyles({ checkbox });
const [tab, setTab] = useState("async"); const [tab, setTab] = useState("async");
const [object, setObject] = useState<string | null>(null); const [object, setObject] = useState<string | null>(null);
@ -158,22 +158,28 @@ const WebhookEvents: React.FC<WebhookEventsProps> = ({
{object && {object &&
EventTypes[tab][object] && EventTypes[tab][object] &&
EventTypes[tab][object].map((event, idx) => ( EventTypes[tab][object].map((event, idx) => (
<ListItem className={classes.listItem} key={idx}> <ListItem className={classes.eventListItem} key={idx}>
<ListItemCell className={classes.listItemCell}> <ListItemCell className={classes.eventListItemCell}>
<strong> <label
{capitalize(event.toLowerCase().replaceAll("_", " "))} htmlFor={`event-checkbox-${idx}`}
</strong> className={classes.eventListLabel}
</ListItemCell> >
<ListItemCell> <strong>
<Checkbox {capitalize(
name={`${tab}Events`} event.toLowerCase().replaceAll("_", " "),
checked={data[`${tab}Events`].includes( )}
getEventName(object, event), </strong>
)} <Checkbox
value={getEventName(object, event)} name={`${tab}Events`}
onChange={handleEventChange} checked={data[`${tab}Events`].includes(
className={classes.checkbox} getEventName(object, event),
/> )}
value={getEventName(object, event)}
onChange={handleEventChange}
className={classes.checkbox}
id={`event-checkbox-${idx}`}
/>
</label>
</ListItemCell> </ListItemCell>
</ListItem> </ListItem>
))} ))}

View file

@ -1,7 +1,7 @@
import { makeStyles } from "@saleor/macaw-ui"; import { makeStyles } from "@saleor/macaw-ui";
import { vars } from "@saleor/macaw-ui/next"; import { vars } from "@saleor/macaw-ui/next";
export const useStyles = makeStyles( export const useStyles = makeStyles<{ checkbox?: string }>(
theme => ({ theme => ({
eventsWrapper: { eventsWrapper: {
padding: theme.spacing(4), padding: theme.spacing(4),
@ -33,6 +33,10 @@ export const useStyles = makeStyles(
}, },
checkbox: { checkbox: {
padding: 0, padding: 0,
// disables shadow blinking next to the checkbox
"& span::before": {
display: "none",
},
}, },
card: { card: {
paddingLeft: 0, paddingLeft: 0,
@ -40,6 +44,23 @@ export const useStyles = makeStyles(
cardHeader: { cardHeader: {
padding: "2.4rem 3.2rem", padding: "2.4rem 3.2rem",
}, },
eventListItem: {
padding: 0,
gridTemplateColumns: "unset",
minHeight: 0,
gap: 0,
cursor: "pointer",
},
eventListItemCell: {
padding: "0 !important",
wordBreak: "break-all",
},
eventListLabel: props => ({
padding: "1.8rem 0.8rem",
display: "grid",
cursor: "pointer",
gridTemplateColumns: `1fr ${props.checkbox}`,
}),
}), }),
{ name: "WebhookEvents" }, { name: "WebhookEvents" },
); );