@activecollab/components 2.0.349 → 2.0.351
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Autocomplete/Autocomplete.js +2 -0
- package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/cjs/components/Select/Option/Option.js.map +1 -1
- package/dist/cjs/components/Select/OptionContent/OptionContent.js +6 -2
- package/dist/cjs/components/Select/OptionContent/OptionContent.js.map +1 -1
- package/dist/cjs/components/Select/OptionContent/Styles.js +8 -3
- package/dist/cjs/components/Select/OptionContent/Styles.js.map +1 -1
- package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +6 -2
- package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
- package/dist/cjs/components/Select/OptionGroup/Styles.js +13 -3
- package/dist/cjs/components/Select/OptionGroup/Styles.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +4 -0
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/presentation/shared/WebhookLogsDialog.js +124 -14
- package/dist/cjs/presentation/shared/WebhookLogsDialog.js.map +1 -1
- package/dist/cjs/presentation/shared/headers.js +73 -37
- package/dist/cjs/presentation/shared/headers.js.map +1 -1
- package/dist/cjs/presentation/shared/index.js +7 -0
- package/dist/cjs/presentation/shared/index.js.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.js +2 -0
- package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/esm/components/Select/Option/Option.d.ts +2 -0
- package/dist/esm/components/Select/Option/Option.d.ts.map +1 -1
- package/dist/esm/components/Select/Option/Option.js.map +1 -1
- package/dist/esm/components/Select/OptionContent/OptionContent.d.ts +3 -1
- package/dist/esm/components/Select/OptionContent/OptionContent.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionContent/OptionContent.js +7 -3
- package/dist/esm/components/Select/OptionContent/OptionContent.js.map +1 -1
- package/dist/esm/components/Select/OptionContent/Styles.d.ts +1 -0
- package/dist/esm/components/Select/OptionContent/Styles.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionContent/Styles.js +7 -2
- package/dist/esm/components/Select/OptionContent/Styles.js.map +1 -1
- package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionGroup/OptionGroup.js +7 -3
- package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
- package/dist/esm/components/Select/OptionGroup/Styles.d.ts +2 -0
- package/dist/esm/components/Select/OptionGroup/Styles.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionGroup/Styles.js +12 -2
- package/dist/esm/components/Select/OptionGroup/Styles.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +4 -0
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/presentation/shared/WebhookLogsDialog.d.ts +22 -1
- package/dist/esm/presentation/shared/WebhookLogsDialog.d.ts.map +1 -1
- package/dist/esm/presentation/shared/WebhookLogsDialog.js +133 -35
- package/dist/esm/presentation/shared/WebhookLogsDialog.js.map +1 -1
- package/dist/esm/presentation/shared/headers.d.ts +8 -1
- package/dist/esm/presentation/shared/headers.d.ts.map +1 -1
- package/dist/esm/presentation/shared/headers.js +64 -35
- package/dist/esm/presentation/shared/headers.js.map +1 -1
- package/dist/esm/presentation/shared/index.d.ts +2 -2
- package/dist/esm/presentation/shared/index.d.ts.map +1 -1
- package/dist/esm/presentation/shared/index.js +1 -1
- package/dist/esm/presentation/shared/index.js.map +1 -1
- package/dist/index.js +37 -8
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACH,SAAS,EACV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAc3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAKlE,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IACrD,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CACV,kBAAkB,EAChB,cAAc,GACd,SAAS,GACT,mBAAmB,GACnB,oBAAoB,GACpB,cAAc,CACjB;IACD,sBAAsB;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9D,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,oCAAoC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,qCAAqC;IACrC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACH,SAAS,EACV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAc3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAKlE,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IACrD,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CACV,kBAAkB,EAChB,cAAc,GACd,SAAS,GACT,mBAAmB,GACnB,oBAAoB,GACpB,cAAc,CACjB;IACD,sBAAsB;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9D,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,oCAAoC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,qCAAqC;IACrC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,CAySnC,CAAC"}
|
|
@@ -164,7 +164,11 @@ export const Select = _ref => {
|
|
|
164
164
|
if (typeof renderOption === "function") {
|
|
165
165
|
return renderOption(option, props);
|
|
166
166
|
}
|
|
167
|
+
if (option.icon && option.image) {
|
|
168
|
+
console.warn("Option has both `icon` and `image` set; `icon` takes precedence and `image` is ignored.");
|
|
169
|
+
}
|
|
167
170
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(OptionContent, {
|
|
171
|
+
icon: option.icon,
|
|
168
172
|
imageUrl: option.image,
|
|
169
173
|
color: option.color,
|
|
170
174
|
textColor: option.textColor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","classNames","OptionContent","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","StyledStartAdornment","StyledEndAdornment","useForkRef","Autocomplete","isOptionGroup","Menu","Select","_ref","_ref$type","type","mode","target","options","_ref$selected","selected","_ref$mixed","mixed","_ref$position","position","_ref$onChange","onChange","placeholder","_ref$emptyAction","emptyAction","_ref$disableSearch","disableSearch","forceCloseMenu","selectClassName","_ref$keepSameOptionsO","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","_ref$preselectDefault","preselectDefaultValue","startAdornment","endAdornment","_ref$focusInput","focusInput","disableVirtualization","prop","_objectWithoutPropertiesLoose","_excluded","console","warn","childNode","elementRef","handleRef","Tag","_useState","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","mixedOptions","length","removeFromMixedOptions","idsToRemove","current","filter","mixedOption","includes","isAllOptionsChecked","every","someOptionsChecked","some","_childNode$current","focus","handleChange","selectedValue","undefined","onClose","onOpen","onPopperOpen","_elementRef$current","props","menuClassName","className","handleEmptyAction","value","handleDefaultOptionChangeCallback","handleRenderOption","createElement","Fragment","imageUrl","image","color","textColor","name","additionalInfo","_extends","checked","ref","clearInputOnSelect","inputEl","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n ReactNode,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\n\nimport { OptionContent } from \"./OptionContent/OptionContent\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n StyledStartAdornment,\n StyledEndAdornment,\n} from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\n\nexport interface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n | \"handleChange\"\n | \"inputEl\"\n | \"handleEmptyAction\"\n | \"clearInputOnSelect\"\n | \"mixedOptions\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n /** Node element on the left side */\n startAdornment?: ReactNode;\n /** Node element on the right side */\n endAdornment?: ReactNode;\n /** Focus search input on inline select */\n focusInput?: boolean;\n /** Mixed options values */\n mixed?: (string | number)[];\n disableVirtualization?: boolean;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n mixed = [],\n position = \"bottom-start\",\n onChange = () => null,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n startAdornment,\n endAdornment,\n focusInput = false,\n disableVirtualization,\n ...prop\n}) => {\n if (disableSearch && (startAdornment || endAdornment)) {\n console.warn(\"Adornments are not visible when search bar is hidden\");\n }\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const mixedOptions = useRef(type === \"multiple\" && mixed.length ? mixed : []);\n\n const removeFromMixedOptions = useCallback(\n (idsToRemove: (string | number)[]) => {\n mixedOptions.current = mixedOptions.current.filter(\n (mixedOption) => !idsToRemove.includes(mixedOption)\n );\n },\n []\n );\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n const someOptionsChecked = useMemo(\n () => allOptionValues.some((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n if ((open && target) || (!target && focusInput)) {\n childNode?.current?.focus();\n }\n }, [focusInput, open, target]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (\n selectedValue !== undefined &&\n selectedValue !== selected &&\n !(selectedValue instanceof Array && selectedValue.includes(undefined))\n ) {\n onChange(selectedValue);\n type === \"multiple\" &&\n mixedOptions.current.length &&\n removeFromMixedOptions(selectedValue);\n }\n },\n [\n forceCloseMenu,\n selected,\n onSelectClose,\n onChange,\n type,\n removeFromMixedOptions,\n ]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const onPopperOpen = useCallback(() => {\n elementRef?.current?.focus();\n }, []);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n onPopperOpen,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [\n target,\n selectClassName,\n onClose,\n onOpen,\n mode,\n open,\n position,\n onPopperOpen,\n ]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n // Clear the search input without triggering form reset events\n if (elementRef?.current) {\n elementRef.current.value = \"\";\n }\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox\n checked={isAllOptionsChecked}\n mixed={someOptionsChecked && !isAllOptionsChecked}\n {...props}\n />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox\n mixed={mixedOptions.current.includes(option.id)}\n {...props}\n />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [\n isAllOptionsChecked,\n renderOption,\n type,\n someOptionsChecked,\n selectedOptions,\n ]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm>\n {startAdornment ? (\n <StyledStartAdornment>{startAdornment}</StyledStartAdornment>\n ) : null}\n <StyledSelectInput ref={handleRef} placeholder={placeholder} />\n {endAdornment ? (\n <StyledEndAdornment>{endAdornment}</StyledEndAdornment>\n ) : null}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={disableSearch ? undefined : childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n mixedOptions={mixedOptions.current}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n disableVirtualization={disableVirtualization}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Select.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","classNames","OptionContent","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","StyledStartAdornment","StyledEndAdornment","useForkRef","Autocomplete","isOptionGroup","Menu","Select","_ref","_ref$type","type","mode","target","options","_ref$selected","selected","_ref$mixed","mixed","_ref$position","position","_ref$onChange","onChange","placeholder","_ref$emptyAction","emptyAction","_ref$disableSearch","disableSearch","forceCloseMenu","selectClassName","_ref$keepSameOptionsO","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","_ref$preselectDefault","preselectDefaultValue","startAdornment","endAdornment","_ref$focusInput","focusInput","disableVirtualization","prop","_objectWithoutPropertiesLoose","_excluded","console","warn","childNode","elementRef","handleRef","Tag","_useState","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","mixedOptions","length","removeFromMixedOptions","idsToRemove","current","filter","mixedOption","includes","isAllOptionsChecked","every","someOptionsChecked","some","_childNode$current","focus","handleChange","selectedValue","undefined","onClose","onOpen","onPopperOpen","_elementRef$current","props","menuClassName","className","handleEmptyAction","value","handleDefaultOptionChangeCallback","handleRenderOption","icon","image","createElement","Fragment","imageUrl","color","textColor","name","additionalInfo","_extends","checked","ref","clearInputOnSelect","inputEl","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n ReactNode,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\n\nimport { OptionContent } from \"./OptionContent/OptionContent\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n StyledStartAdornment,\n StyledEndAdornment,\n} from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\n\nexport interface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n | \"handleChange\"\n | \"inputEl\"\n | \"handleEmptyAction\"\n | \"clearInputOnSelect\"\n | \"mixedOptions\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n /** Node element on the left side */\n startAdornment?: ReactNode;\n /** Node element on the right side */\n endAdornment?: ReactNode;\n /** Focus search input on inline select */\n focusInput?: boolean;\n /** Mixed options values */\n mixed?: (string | number)[];\n disableVirtualization?: boolean;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n mixed = [],\n position = \"bottom-start\",\n onChange = () => null,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n startAdornment,\n endAdornment,\n focusInput = false,\n disableVirtualization,\n ...prop\n}) => {\n if (disableSearch && (startAdornment || endAdornment)) {\n console.warn(\"Adornments are not visible when search bar is hidden\");\n }\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const mixedOptions = useRef(type === \"multiple\" && mixed.length ? mixed : []);\n\n const removeFromMixedOptions = useCallback(\n (idsToRemove: (string | number)[]) => {\n mixedOptions.current = mixedOptions.current.filter(\n (mixedOption) => !idsToRemove.includes(mixedOption)\n );\n },\n []\n );\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n const someOptionsChecked = useMemo(\n () => allOptionValues.some((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n if ((open && target) || (!target && focusInput)) {\n childNode?.current?.focus();\n }\n }, [focusInput, open, target]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (\n selectedValue !== undefined &&\n selectedValue !== selected &&\n !(selectedValue instanceof Array && selectedValue.includes(undefined))\n ) {\n onChange(selectedValue);\n type === \"multiple\" &&\n mixedOptions.current.length &&\n removeFromMixedOptions(selectedValue);\n }\n },\n [\n forceCloseMenu,\n selected,\n onSelectClose,\n onChange,\n type,\n removeFromMixedOptions,\n ]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const onPopperOpen = useCallback(() => {\n elementRef?.current?.focus();\n }, []);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n onPopperOpen,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [\n target,\n selectClassName,\n onClose,\n onOpen,\n mode,\n open,\n position,\n onPopperOpen,\n ]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n // Clear the search input without triggering form reset events\n if (elementRef?.current) {\n elementRef.current.value = \"\";\n }\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (option.icon && option.image) {\n console.warn(\n \"Option has both `icon` and `image` set; `icon` takes precedence and `image` is ignored.\"\n );\n }\n return (\n <>\n <OptionContent\n icon={option.icon}\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox\n checked={isAllOptionsChecked}\n mixed={someOptionsChecked && !isAllOptionsChecked}\n {...props}\n />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox\n mixed={mixedOptions.current.includes(option.id)}\n {...props}\n />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [\n isAllOptionsChecked,\n renderOption,\n type,\n someOptionsChecked,\n selectedOptions,\n ]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm>\n {startAdornment ? (\n <StyledStartAdornment>{startAdornment}</StyledStartAdornment>\n ) : null}\n <StyledSelectInput ref={handleRef} placeholder={placeholder} />\n {endAdornment ? (\n <StyledEndAdornment>{endAdornment}</StyledEndAdornment>\n ) : null}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={disableSearch ? undefined : childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n mixedOptions={mixedOptions.current}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n disableVirtualization={disableVirtualization}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -22,6 +22,12 @@ export interface WebhookConnection {
|
|
|
22
22
|
name: string;
|
|
23
23
|
service: "github" | "gitlab";
|
|
24
24
|
}
|
|
25
|
+
export interface WebhookRepository {
|
|
26
|
+
id: string;
|
|
27
|
+
/** Full repository path, e.g. activecollab/feather. */
|
|
28
|
+
path: string;
|
|
29
|
+
connectionId: string;
|
|
30
|
+
}
|
|
25
31
|
/**
|
|
26
32
|
* Normalized event kind. The processor layer maps each provider's raw event
|
|
27
33
|
* header (GitHub `issues`, GitLab `Issue Hook`, …) onto one provider-agnostic
|
|
@@ -32,6 +38,8 @@ type WebhookEventKind = "issue" | "push" | "merge_request" | "repository" | "pin
|
|
|
32
38
|
export interface WebhookLog {
|
|
33
39
|
id: string;
|
|
34
40
|
connectionId: string;
|
|
41
|
+
/** Repository the delivery belongs to (always within `connectionId`). */
|
|
42
|
+
repositoryId: string;
|
|
35
43
|
eventKind: WebhookEventKind;
|
|
36
44
|
status: WebhookStatus;
|
|
37
45
|
/** X-GitHub-Delivery GUID / X-Gitlab-Event-UUID. */
|
|
@@ -46,6 +54,13 @@ export interface WebhookLog {
|
|
|
46
54
|
receivedAt: number;
|
|
47
55
|
}
|
|
48
56
|
export declare const WEBHOOK_CONNECTIONS: WebhookConnection[];
|
|
57
|
+
/**
|
|
58
|
+
* Repositories that belong to the connections above. A webhook delivery is
|
|
59
|
+
* always scoped to one repository, and a repository belongs to exactly one
|
|
60
|
+
* connection — so the Repository filter can be narrowed to the connection(s)
|
|
61
|
+
* currently selected in the Connection filter.
|
|
62
|
+
*/
|
|
63
|
+
export declare const WEBHOOK_REPOSITORIES: WebhookRepository[];
|
|
49
64
|
export interface WebhookLogsDialogProps {
|
|
50
65
|
open: boolean;
|
|
51
66
|
onClose: () => void;
|
|
@@ -56,7 +71,13 @@ export interface WebhookLogsDialogProps {
|
|
|
56
71
|
* repositories belong to). Takes precedence over `initialConnectionId`.
|
|
57
72
|
*/
|
|
58
73
|
connectionIds?: string[];
|
|
74
|
+
/**
|
|
75
|
+
* Pre-filter to a set of repositories (e.g. the repositories connected to a
|
|
76
|
+
* project, when opened from the project "..." menu). Seeds the Repository
|
|
77
|
+
* filter; IDs should exist in `WEBHOOK_REPOSITORIES` so their chips render.
|
|
78
|
+
*/
|
|
79
|
+
repositoryIds?: string[];
|
|
59
80
|
}
|
|
60
|
-
export declare const WebhookLogsDialog: ({ open, onClose, initialConnectionId, connectionIds, }: WebhookLogsDialogProps) => ReactElement;
|
|
81
|
+
export declare const WebhookLogsDialog: ({ open, onClose, initialConnectionId, connectionIds, repositoryIds, }: WebhookLogsDialogProps) => ReactElement;
|
|
61
82
|
export {};
|
|
62
83
|
//# sourceMappingURL=WebhookLogsDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookLogsDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/WebhookLogsDialog.tsx"],"names":[],"mappings":"AAAA,OAAc,
|
|
1
|
+
{"version":3,"file":"WebhookLogsDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/WebhookLogsDialog.tsx"],"names":[],"mappings":"AAAA,OAAc,EAEZ,YAAY,EAIb,MAAM,OAAO,CAAC;AAuBf;;;;;;;;;;;;;;;;GAgBG;AAEH,KAAK,aAAa,GACd,UAAU,GACV,WAAW,GACX,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,KAAK,gBAAgB,GACjB,OAAO,GACP,MAAM,GACN,eAAe,GACf,YAAY,GACZ,MAAM,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,oDAAoD;IACpD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EAOlD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAyBnD,CAAC;AAilBF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,iBAAiB,GAAI,uEAM/B,sBAAsB,KAAG,YAkM3B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import React, { useCallback, useMemo, useState } from "react";
|
|
2
3
|
import styled from "styled-components";
|
|
3
4
|
import { Button } from "../../components/Button";
|
|
4
5
|
import { Chip } from "../../components/Chip";
|
|
@@ -58,6 +59,46 @@ export const WEBHOOK_CONNECTIONS = [{
|
|
|
58
59
|
name: "Acme Community",
|
|
59
60
|
service: "gitlab"
|
|
60
61
|
}];
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Repositories that belong to the connections above. A webhook delivery is
|
|
65
|
+
* always scoped to one repository, and a repository belongs to exactly one
|
|
66
|
+
* connection — so the Repository filter can be narrowed to the connection(s)
|
|
67
|
+
* currently selected in the Connection filter.
|
|
68
|
+
*/
|
|
69
|
+
export const WEBHOOK_REPOSITORIES = [{
|
|
70
|
+
id: "ac-feather",
|
|
71
|
+
path: "activecollab/feather",
|
|
72
|
+
connectionId: "gh-activecollab"
|
|
73
|
+
}, {
|
|
74
|
+
id: "ac-backend",
|
|
75
|
+
path: "activecollab/backend",
|
|
76
|
+
connectionId: "gh-activecollab"
|
|
77
|
+
}, {
|
|
78
|
+
id: "ab-animus",
|
|
79
|
+
path: "abstergo/animus",
|
|
80
|
+
connectionId: "gh-abstergo"
|
|
81
|
+
}, {
|
|
82
|
+
id: "bi-tool-time",
|
|
83
|
+
path: "binford/tool-time",
|
|
84
|
+
connectionId: "gh-binford"
|
|
85
|
+
}, {
|
|
86
|
+
id: "pl-gateway",
|
|
87
|
+
path: "platform/api-gateway",
|
|
88
|
+
connectionId: "gl-platform"
|
|
89
|
+
}, {
|
|
90
|
+
id: "co-handbook",
|
|
91
|
+
path: "content/handbook",
|
|
92
|
+
connectionId: "gl-content"
|
|
93
|
+
}, {
|
|
94
|
+
id: "co-marketing",
|
|
95
|
+
path: "content/marketing-site",
|
|
96
|
+
connectionId: "gl-content"
|
|
97
|
+
}, {
|
|
98
|
+
id: "acme-ce",
|
|
99
|
+
path: "acme/community-edition",
|
|
100
|
+
connectionId: "gl-acme-ce"
|
|
101
|
+
}];
|
|
61
102
|
const EVENT_KIND_LABELS = {
|
|
62
103
|
issue: "Issue",
|
|
63
104
|
push: "Push",
|
|
@@ -207,6 +248,7 @@ const PAYLOAD_PUSH = JSON.stringify({
|
|
|
207
248
|
const WEBHOOK_LOGS = [{
|
|
208
249
|
id: "log-7",
|
|
209
250
|
connectionId: "gh-activecollab",
|
|
251
|
+
repositoryId: "ac-feather",
|
|
210
252
|
eventKind: "issue",
|
|
211
253
|
status: "processed",
|
|
212
254
|
deliveryIdentifier: "d3b07384-d9a0-4c9b-8f1e-2a6f1b9c4e21",
|
|
@@ -217,6 +259,7 @@ const WEBHOOK_LOGS = [{
|
|
|
217
259
|
}, {
|
|
218
260
|
id: "log-6",
|
|
219
261
|
connectionId: "gl-content",
|
|
262
|
+
repositoryId: "co-handbook",
|
|
220
263
|
eventKind: "merge_request",
|
|
221
264
|
status: "skipped",
|
|
222
265
|
deliveryIdentifier: "b1946ac9-2f3a-4c0d-9b7e-1d2c3e4f5a6b",
|
|
@@ -227,6 +270,7 @@ const WEBHOOK_LOGS = [{
|
|
|
227
270
|
}, {
|
|
228
271
|
id: "log-5",
|
|
229
272
|
connectionId: "gh-activecollab",
|
|
273
|
+
repositoryId: "ac-backend",
|
|
230
274
|
eventKind: "issue",
|
|
231
275
|
status: "failed",
|
|
232
276
|
deliveryIdentifier: "9c1185a5-c5e9-4e3f-8a1b-7d6e5f4c3b2a",
|
|
@@ -237,6 +281,7 @@ const WEBHOOK_LOGS = [{
|
|
|
237
281
|
}, {
|
|
238
282
|
id: "log-4",
|
|
239
283
|
connectionId: "gl-content",
|
|
284
|
+
repositoryId: "co-handbook",
|
|
240
285
|
eventKind: "push",
|
|
241
286
|
status: "processed",
|
|
242
287
|
deliveryIdentifier: "f7c3bc1d-8c5a-4b2e-9f0a-1b2c3d4e5f60",
|
|
@@ -247,6 +292,7 @@ const WEBHOOK_LOGS = [{
|
|
|
247
292
|
}, {
|
|
248
293
|
id: "log-3",
|
|
249
294
|
connectionId: "gh-activecollab",
|
|
295
|
+
repositoryId: "ac-feather",
|
|
250
296
|
eventKind: "ping",
|
|
251
297
|
status: "unhandled",
|
|
252
298
|
deliveryIdentifier: "1574bddb-75c3-4b1e-8a9c-0d1e2f3a4b5c",
|
|
@@ -260,6 +306,7 @@ const WEBHOOK_LOGS = [{
|
|
|
260
306
|
}, {
|
|
261
307
|
id: "log-2",
|
|
262
308
|
connectionId: "gl-content",
|
|
309
|
+
repositoryId: "co-marketing",
|
|
263
310
|
eventKind: "issue",
|
|
264
311
|
status: "received",
|
|
265
312
|
deliveryIdentifier: "0716d970-2b9e-4a1d-9c3f-5e6a7b8c9d01",
|
|
@@ -269,6 +316,7 @@ const WEBHOOK_LOGS = [{
|
|
|
269
316
|
}, {
|
|
270
317
|
id: "log-1",
|
|
271
318
|
connectionId: "gh-activecollab",
|
|
319
|
+
repositoryId: "ac-feather",
|
|
272
320
|
eventKind: "issue",
|
|
273
321
|
status: "processed",
|
|
274
322
|
deliveryIdentifier: "fa3ebd6742c360b2d9652b7f78d9bd7d",
|
|
@@ -279,6 +327,7 @@ const WEBHOOK_LOGS = [{
|
|
|
279
327
|
}, {
|
|
280
328
|
id: "log-1-replay",
|
|
281
329
|
connectionId: "gh-activecollab",
|
|
330
|
+
repositoryId: "ac-feather",
|
|
282
331
|
eventKind: "issue",
|
|
283
332
|
status: "duplicate",
|
|
284
333
|
deliveryIdentifier: "fa3ebd6742c360b2d9652b7f78d9bd7d",
|
|
@@ -428,19 +477,19 @@ export const WebhookLogsDialog = _ref5 => {
|
|
|
428
477
|
let open = _ref5.open,
|
|
429
478
|
onClose = _ref5.onClose,
|
|
430
479
|
initialConnectionId = _ref5.initialConnectionId,
|
|
431
|
-
connectionIds = _ref5.connectionIds
|
|
480
|
+
connectionIds = _ref5.connectionIds,
|
|
481
|
+
repositoryIds = _ref5.repositoryIds;
|
|
432
482
|
const _useState3 = useState(() => {
|
|
483
|
+
const initial = {};
|
|
433
484
|
if (connectionIds && connectionIds.length > 0) {
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
485
|
+
initial.connection = connectionIds;
|
|
486
|
+
} else if (initialConnectionId) {
|
|
487
|
+
initial.connection = [initialConnectionId];
|
|
437
488
|
}
|
|
438
|
-
if (
|
|
439
|
-
|
|
440
|
-
connection: [initialConnectionId]
|
|
441
|
-
};
|
|
489
|
+
if (repositoryIds && repositoryIds.length > 0) {
|
|
490
|
+
initial.repository = repositoryIds;
|
|
442
491
|
}
|
|
443
|
-
return
|
|
492
|
+
return initial;
|
|
444
493
|
}),
|
|
445
494
|
filters = _useState3[0],
|
|
446
495
|
setFilters = _useState3[1];
|
|
@@ -451,37 +500,62 @@ export const WebhookLogsDialog = _ref5 => {
|
|
|
451
500
|
});
|
|
452
501
|
return map;
|
|
453
502
|
}, []);
|
|
454
|
-
const filterData = useMemo(() =>
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
})
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
503
|
+
const filterData = useMemo(() => {
|
|
504
|
+
var _filters$connection;
|
|
505
|
+
// The Repository options narrow to the connection(s) currently selected in
|
|
506
|
+
// the Connection filter; with no connection selected, every repository is
|
|
507
|
+
// offered. Displayed as "path (connection name)" (matching the project
|
|
508
|
+
// "..." menu Repositories list) and sorted by repository path.
|
|
509
|
+
const selectedConnections = (_filters$connection = filters.connection) != null ? _filters$connection : [];
|
|
510
|
+
const repositorySubmenu = WEBHOOK_REPOSITORIES.filter(repository => selectedConnections.length === 0 || selectedConnections.includes(repository.connectionId)).slice().sort((a, b) => a.path.localeCompare(b.path)).map(repository => {
|
|
511
|
+
var _connectionsById$repo, _connectionsById$repo2;
|
|
512
|
+
return {
|
|
513
|
+
id: repository.id,
|
|
514
|
+
name: repository.path + " (" + ((_connectionsById$repo = (_connectionsById$repo2 = connectionsById[repository.connectionId]) == null ? void 0 : _connectionsById$repo2.name) != null ? _connectionsById$repo : "Unknown") + ")"
|
|
515
|
+
};
|
|
516
|
+
});
|
|
517
|
+
return [{
|
|
518
|
+
id: "connection",
|
|
519
|
+
title: "Connection",
|
|
520
|
+
submenu: WEBHOOK_CONNECTIONS.map(connection => ({
|
|
521
|
+
id: connection.id,
|
|
522
|
+
name: connection.name
|
|
523
|
+
}))
|
|
524
|
+
}, {
|
|
525
|
+
id: "repository",
|
|
526
|
+
title: "Repository",
|
|
527
|
+
searchPlaceholder: "Search repositories",
|
|
528
|
+
disableInternalSort: true,
|
|
529
|
+
submenu: repositorySubmenu
|
|
530
|
+
}, {
|
|
531
|
+
id: "event_type",
|
|
532
|
+
title: "Event Type",
|
|
533
|
+
submenu: Array.from(new Set(WEBHOOK_LOGS.map(log => log.eventKind))).map(eventKind => ({
|
|
534
|
+
id: eventKind,
|
|
535
|
+
name: EVENT_KIND_LABELS[eventKind]
|
|
536
|
+
}))
|
|
537
|
+
}, {
|
|
538
|
+
id: "status",
|
|
539
|
+
title: "Processing Status",
|
|
540
|
+
submenu: Object.keys(STATUS_LABELS).map(status => ({
|
|
541
|
+
id: status,
|
|
542
|
+
name: STATUS_LABELS[status]
|
|
543
|
+
}))
|
|
544
|
+
}];
|
|
545
|
+
}, [filters.connection, connectionsById]);
|
|
476
546
|
const visibleLogs = useMemo(() => {
|
|
477
|
-
var _filters$
|
|
478
|
-
const byConnection = (_filters$
|
|
547
|
+
var _filters$connection2, _filters$repository, _filters$event_type, _filters$status;
|
|
548
|
+
const byConnection = (_filters$connection2 = filters.connection) != null ? _filters$connection2 : [];
|
|
549
|
+
const byRepository = (_filters$repository = filters.repository) != null ? _filters$repository : [];
|
|
479
550
|
const byEvent = (_filters$event_type = filters.event_type) != null ? _filters$event_type : [];
|
|
480
551
|
const byStatus = (_filters$status = filters.status) != null ? _filters$status : [];
|
|
481
552
|
return WEBHOOK_LOGS.filter(log => {
|
|
482
553
|
if (byConnection.length && !byConnection.includes(log.connectionId)) {
|
|
483
554
|
return false;
|
|
484
555
|
}
|
|
556
|
+
if (byRepository.length && !byRepository.includes(log.repositoryId)) {
|
|
557
|
+
return false;
|
|
558
|
+
}
|
|
485
559
|
if (byEvent.length && !byEvent.includes(log.eventKind)) {
|
|
486
560
|
return false;
|
|
487
561
|
}
|
|
@@ -491,6 +565,30 @@ export const WebhookLogsDialog = _ref5 => {
|
|
|
491
565
|
return true;
|
|
492
566
|
}).sort((a, b) => b.receivedAt - a.receivedAt);
|
|
493
567
|
}, [filters]);
|
|
568
|
+
|
|
569
|
+
// When the Connection filter narrows, drop any selected repositories that no
|
|
570
|
+
// longer belong to a selected connection — otherwise a stale repository
|
|
571
|
+
// selection would silently filter every log out.
|
|
572
|
+
const handleFiltersChange = useCallback(next => {
|
|
573
|
+
var _next$connection, _next$repository;
|
|
574
|
+
const selectedConnections = (_next$connection = next.connection) != null ? _next$connection : [];
|
|
575
|
+
const selectedRepositories = (_next$repository = next.repository) != null ? _next$repository : [];
|
|
576
|
+
if (selectedConnections.length && selectedRepositories.length) {
|
|
577
|
+
const allowedRepositoryIds = new Set(WEBHOOK_REPOSITORIES.filter(repository => selectedConnections.includes(repository.connectionId)).map(repository => repository.id));
|
|
578
|
+
const prunedRepositories = selectedRepositories.filter(id => allowedRepositoryIds.has(id));
|
|
579
|
+
if (prunedRepositories.length !== selectedRepositories.length) {
|
|
580
|
+
const updated = _extends({}, next);
|
|
581
|
+
if (prunedRepositories.length) {
|
|
582
|
+
updated.repository = prunedRepositories;
|
|
583
|
+
} else {
|
|
584
|
+
delete updated.repository;
|
|
585
|
+
}
|
|
586
|
+
setFilters(updated);
|
|
587
|
+
return;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
setFilters(next);
|
|
591
|
+
}, []);
|
|
494
592
|
return /*#__PURE__*/React.createElement(WebhookLogsDialogStyled, {
|
|
495
593
|
open: open,
|
|
496
594
|
onClose: onClose,
|
|
@@ -506,7 +604,7 @@ export const WebhookLogsDialog = _ref5 => {
|
|
|
506
604
|
clearAllText: "Clear All",
|
|
507
605
|
noResultText: "No results",
|
|
508
606
|
emptyFilterText: "No filters to show",
|
|
509
|
-
onChange:
|
|
607
|
+
onChange: handleFiltersChange
|
|
510
608
|
}), /*#__PURE__*/React.createElement(IconButton, {
|
|
511
609
|
variant: "text gray",
|
|
512
610
|
onClick: onClose
|