-
Notifications
You must be signed in to change notification settings - Fork 4.5k
chore: Shadow PR for external contribution 36882 #36969
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -70,6 +70,7 @@ const TextContainer = styled.div<{ | |||||||||||||||||||||||||||||||||||||||||||
| }>` | ||||||||||||||||||||||||||||||||||||||||||||
| display: flex; | ||||||||||||||||||||||||||||||||||||||||||||
| align-items: center; | ||||||||||||||||||||||||||||||||||||||||||||
| // justify-content: space-evenly; | ||||||||||||||||||||||||||||||||||||||||||||
| .bp3-editable-text.bp3-editable-text-editing::before, | ||||||||||||||||||||||||||||||||||||||||||||
| .bp3-editable-text.bp3-disabled::before { | ||||||||||||||||||||||||||||||||||||||||||||
| display: none; | ||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -80,7 +81,6 @@ const TextContainer = styled.div<{ | |||||||||||||||||||||||||||||||||||||||||||
| color: var(--ads-editable-text-subcomponent-default-text-color); | ||||||||||||||||||||||||||||||||||||||||||||
| overflow: hidden; | ||||||||||||||||||||||||||||||||||||||||||||
| text-overflow: ellipsis; | ||||||||||||||||||||||||||||||||||||||||||||
| ${(props) => (props.isEditing ? "display: none" : "display: block")}; | ||||||||||||||||||||||||||||||||||||||||||||
| width: fit-content !important; | ||||||||||||||||||||||||||||||||||||||||||||
| min-width: auto !important; | ||||||||||||||||||||||||||||||||||||||||||||
| line-height: inherit !important; | ||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -138,6 +138,7 @@ export const EditableTextSubComponent = React.forwardRef( | |||||||||||||||||||||||||||||||||||||||||||
| const [value, setValue] = useState(defaultValue); | ||||||||||||||||||||||||||||||||||||||||||||
| const [lastValidValue, setLastValidValue] = useState(defaultValue); | ||||||||||||||||||||||||||||||||||||||||||||
| const [changeStarted, setChangeStarted] = useState<boolean>(false); | ||||||||||||||||||||||||||||||||||||||||||||
| const [isCancelled, setIsCancelled] = useState<boolean>(false); | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| useEffect(() => { | ||||||||||||||||||||||||||||||||||||||||||||
| if (isError) { | ||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -187,6 +188,8 @@ export const EditableTextSubComponent = React.forwardRef( | |||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| if (finalVal && finalVal !== defaultValue) { | ||||||||||||||||||||||||||||||||||||||||||||
| onBlur && onBlur(finalVal); | ||||||||||||||||||||||||||||||||||||||||||||
| setLastValidValue(finalVal); | ||||||||||||||||||||||||||||||||||||||||||||
| setValue(finalVal); | ||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| setIsEditing(false); | ||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -215,17 +218,31 @@ export const EditableTextSubComponent = React.forwardRef( | |||||||||||||||||||||||||||||||||||||||||||
| const error = errorMessage ? errorMessage : false; | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| if (!error && finalVal !== "") { | ||||||||||||||||||||||||||||||||||||||||||||
| setLastValidValue(finalVal); | ||||||||||||||||||||||||||||||||||||||||||||
| onTextChanged && onTextChanged(finalVal); | ||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| setValue(finalVal); | ||||||||||||||||||||||||||||||||||||||||||||
| setIsInvalid(error); | ||||||||||||||||||||||||||||||||||||||||||||
| setChangeStarted(true); | ||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||
| [inputValidation, onTextChanged], | ||||||||||||||||||||||||||||||||||||||||||||
| [inputValidation, onTextChanged, valueTransform], | ||||||||||||||||||||||||||||||||||||||||||||
| ); | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| const onCancel = useCallback(() => { | ||||||||||||||||||||||||||||||||||||||||||||
| onBlur && onBlur(lastValidValue); | ||||||||||||||||||||||||||||||||||||||||||||
| setIsEditing(false); | ||||||||||||||||||||||||||||||||||||||||||||
| setIsInvalid(false); | ||||||||||||||||||||||||||||||||||||||||||||
| setSavingState(SavingState.NOT_STARTED); | ||||||||||||||||||||||||||||||||||||||||||||
| setValue(lastValidValue); | ||||||||||||||||||||||||||||||||||||||||||||
| setIsCancelled(true); | ||||||||||||||||||||||||||||||||||||||||||||
| }, [lastValidValue, onBlur]); | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| useEffect(() => { | ||||||||||||||||||||||||||||||||||||||||||||
| if (isCancelled) { | ||||||||||||||||||||||||||||||||||||||||||||
| setValue(lastValidValue); | ||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||
| }, [isCancelled, lastValidValue]); | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+231
to
+245
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Simplify cancellation logic by removing redundant state The Apply this diff to simplify the code: - const [isCancelled, setIsCancelled] = useState<boolean>(false);
const onCancel = useCallback(() => {
onBlur && onBlur(lastValidValue);
setIsEditing(false);
setIsInvalid(false);
setSavingState(SavingState.NOT_STARTED);
setValue(lastValidValue);
- setIsCancelled(true);
}, [lastValidValue, onBlur]);
- useEffect(() => {
- if (isCancelled) {
- setValue(lastValidValue);
- }
- }, [isCancelled, lastValidValue]);📝 Committable suggestion
Suggested change
🧰 Tools🪛 Biome
|
||||||||||||||||||||||||||||||||||||||||||||
| const iconName = | ||||||||||||||||||||||||||||||||||||||||||||
| !isEditing && | ||||||||||||||||||||||||||||||||||||||||||||
| savingState === SavingState.NOT_STARTED && | ||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -251,15 +268,42 @@ export const EditableTextSubComponent = React.forwardRef( | |||||||||||||||||||||||||||||||||||||||||||
| className={props.className} | ||||||||||||||||||||||||||||||||||||||||||||
| disabled={!isEditing} | ||||||||||||||||||||||||||||||||||||||||||||
| isEditing={isEditing} | ||||||||||||||||||||||||||||||||||||||||||||
| onCancel={onConfirm} | ||||||||||||||||||||||||||||||||||||||||||||
| onChange={onInputchange} | ||||||||||||||||||||||||||||||||||||||||||||
| onConfirm={onConfirm} | ||||||||||||||||||||||||||||||||||||||||||||
| placeholder={props.placeholder || defaultValue} | ||||||||||||||||||||||||||||||||||||||||||||
| ref={ref} | ||||||||||||||||||||||||||||||||||||||||||||
| selectAllOnFocus | ||||||||||||||||||||||||||||||||||||||||||||
| value={value} | ||||||||||||||||||||||||||||||||||||||||||||
| /> | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| {value && !props.hideEditIcon && isEditing ? ( | ||||||||||||||||||||||||||||||||||||||||||||
| <> | ||||||||||||||||||||||||||||||||||||||||||||
| <span | ||||||||||||||||||||||||||||||||||||||||||||
| className="pl-1" | ||||||||||||||||||||||||||||||||||||||||||||
| onClick={(e) => { | ||||||||||||||||||||||||||||||||||||||||||||
| e.preventDefault(); | ||||||||||||||||||||||||||||||||||||||||||||
| e.stopPropagation(); | ||||||||||||||||||||||||||||||||||||||||||||
| onConfirm(value); | ||||||||||||||||||||||||||||||||||||||||||||
| }} | ||||||||||||||||||||||||||||||||||||||||||||
| > | ||||||||||||||||||||||||||||||||||||||||||||
| <Icon className="cursor-pointer" name="check-line" size="md" /> | ||||||||||||||||||||||||||||||||||||||||||||
| </span> | ||||||||||||||||||||||||||||||||||||||||||||
| <span | ||||||||||||||||||||||||||||||||||||||||||||
| className="px-1" | ||||||||||||||||||||||||||||||||||||||||||||
| onClick={(e) => { | ||||||||||||||||||||||||||||||||||||||||||||
| e.preventDefault(); | ||||||||||||||||||||||||||||||||||||||||||||
| e.stopPropagation(); | ||||||||||||||||||||||||||||||||||||||||||||
| onCancel(); | ||||||||||||||||||||||||||||||||||||||||||||
| }} | ||||||||||||||||||||||||||||||||||||||||||||
| > | ||||||||||||||||||||||||||||||||||||||||||||
| <Icon | ||||||||||||||||||||||||||||||||||||||||||||
| className="cursor-pointer" | ||||||||||||||||||||||||||||||||||||||||||||
| name="close-circle-line" | ||||||||||||||||||||||||||||||||||||||||||||
| size="md" | ||||||||||||||||||||||||||||||||||||||||||||
| /> | ||||||||||||||||||||||||||||||||||||||||||||
| </span> | ||||||||||||||||||||||||||||||||||||||||||||
| </> | ||||||||||||||||||||||||||||||||||||||||||||
| ) : null} | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| {savingState === SavingState.STARTED ? ( | ||||||||||||||||||||||||||||||||||||||||||||
| <Spinner size="md" /> | ||||||||||||||||||||||||||||||||||||||||||||
| ) : value && !props.hideEditIcon && iconName ? ( | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -117,7 +117,7 @@ export function ApplicationCard(props: ApplicationCardProps) { | |
| const [isDeleting, setIsDeleting] = useState(false); | ||
| const [isForkApplicationModalopen, setForkApplicationModalOpen] = | ||
| useState(false); | ||
| const [lastUpdatedValue, setLastUpdatedValue] = useState(""); | ||
| const lastUpdatedValue = ""; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Potential loss of functionality due to state removal The conversion of Consider the following options:
💡 Codebase verification Residual References to The
🔗 Analysis chainVerify intended behavior for application name updates The changes to Please confirm if this is the intended behavior. If not, consider:
To verify the current behavior, you can run the following script: Also applies to: 324-332 🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Check for any remaining references to lastUpdatedValue or onTextChanged
rg 'lastUpdatedValue|onTextChanged' app/client/src/pages/Applications/ApplicationCard.tsx
Length of output: 235 |
||
| const dispatch = useDispatch(); | ||
|
|
||
| const applicationId = props.application?.id; | ||
|
|
@@ -371,9 +371,6 @@ export function ApplicationCard(props: ApplicationCardProps) { | |
| name: value, | ||
| }); | ||
| }} | ||
| onTextChanged={(value: string) => { | ||
| setLastUpdatedValue(value); | ||
| }} | ||
| placeholder={"Edit text input"} | ||
| savingState={ | ||
| isSavingName ? SavingState.STARTED : SavingState.NOT_STARTED | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Use optional chaining for optional function calls
Replace
onBlur && onBlur(lastValidValue);withonBlur?.(lastValidValue);for cleaner and more concise code.Apply this diff:
📝 Committable suggestion
🧰 Tools
🪛 Biome