Merge branch 'develop' into feed
This commit is contained in:
commit
8ba95f5f01
3 changed files with 40 additions and 15 deletions
|
@ -22,15 +22,26 @@ clone() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Try the PR author's branch in case it exists on the deps as well.
|
# Try the PR author's branch in case it exists on the deps as well.
|
||||||
# If BUILDKITE_BRANCH is set, it will contain either:
|
# First we check if BUILDKITE_BRANCH is defined,
|
||||||
|
# if it isn't we can assume this is a Netlify build
|
||||||
|
if [ -z ${BUILDKITE_BRANCH+x} ]; then
|
||||||
|
# Netlify doesn't give us info about the fork so we have to get it from GitHub API
|
||||||
|
apiEndpoint="https://api.github.com/repos/matrix-org/matrix-react-sdk/pulls/"
|
||||||
|
apiEndpoint+=$REVIEW_ID
|
||||||
|
head=$(curl $apiEndpoint | jq -r '.head.label')
|
||||||
|
else
|
||||||
|
head=$BUILDKITE_BRANCH
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If head is set, it will contain either:
|
||||||
# * "branch" when the author's branch and target branch are in the same repo
|
# * "branch" when the author's branch and target branch are in the same repo
|
||||||
# * "author:branch" when the author's branch is in their fork
|
# * "fork:branch" when the author's branch is in their fork or if this is a Netlify build
|
||||||
# We can split on `:` into an array to check.
|
# We can split on `:` into an array to check.
|
||||||
BUILDKITE_BRANCH_ARRAY=(${BUILDKITE_BRANCH//:/ })
|
BRANCH_ARRAY=(${head//:/ })
|
||||||
if [[ "${#BUILDKITE_BRANCH_ARRAY[@]}" == "1" ]]; then
|
if [[ "${#BRANCH_ARRAY[@]}" == "1" ]]; then
|
||||||
clone $deforg $defrepo $BUILDKITE_BRANCH
|
clone $deforg $defrepo $BUILDKITE_BRANCH
|
||||||
elif [[ "${#BUILDKITE_BRANCH_ARRAY[@]}" == "2" ]]; then
|
elif [[ "${#BRANCH_ARRAY[@]}" == "2" ]]; then
|
||||||
clone ${BUILDKITE_BRANCH_ARRAY[0]} $defrepo ${BUILDKITE_BRANCH_ARRAY[1]}
|
clone ${BRANCH_ARRAY[0]} $defrepo ${BRANCH_ARRAY[1]}
|
||||||
fi
|
fi
|
||||||
# Try the target branch of the push or PR.
|
# Try the target branch of the push or PR.
|
||||||
clone $deforg $defrepo $BUILDKITE_PULL_REQUEST_BASE_BRANCH
|
clone $deforg $defrepo $BUILDKITE_PULL_REQUEST_BASE_BRANCH
|
||||||
|
|
|
@ -1137,10 +1137,16 @@ export default class RoomView extends React.Component<IProps, IState> {
|
||||||
ev.stopPropagation();
|
ev.stopPropagation();
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
|
|
||||||
this.setState({
|
// We always increment the counter no matter the types, because dragging is
|
||||||
dragCounter: this.state.dragCounter + 1,
|
// still happening. If we didn't, the drag counter would get out of sync.
|
||||||
draggingFile: true,
|
this.setState({dragCounter: this.state.dragCounter + 1});
|
||||||
});
|
|
||||||
|
// See:
|
||||||
|
// https://docs.w3cub.com/dom/datatransfer/types
|
||||||
|
// https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file
|
||||||
|
if (ev.dataTransfer.types.includes("Files") || ev.dataTransfer.types.includes("application/x-moz-file")) {
|
||||||
|
this.setState({draggingFile: true});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private onDragLeave = ev => {
|
private onDragLeave = ev => {
|
||||||
|
@ -1164,6 +1170,9 @@ export default class RoomView extends React.Component<IProps, IState> {
|
||||||
|
|
||||||
ev.dataTransfer.dropEffect = 'none';
|
ev.dataTransfer.dropEffect = 'none';
|
||||||
|
|
||||||
|
// See:
|
||||||
|
// https://docs.w3cub.com/dom/datatransfer/types
|
||||||
|
// https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file
|
||||||
if (ev.dataTransfer.types.includes("Files") || ev.dataTransfer.types.includes("application/x-moz-file")) {
|
if (ev.dataTransfer.types.includes("Files") || ev.dataTransfer.types.includes("application/x-moz-file")) {
|
||||||
ev.dataTransfer.dropEffect = 'copy';
|
ev.dataTransfer.dropEffect = 'copy';
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,12 +65,17 @@ export class NameFilterCondition extends EventEmitter implements IFilterConditio
|
||||||
return this.matches(room.name);
|
return this.matches(room.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public matches(val: string): boolean {
|
private normalize(val: string): string {
|
||||||
// Note: we have to match the filter with the removeHiddenChars() room name because the
|
// Note: we have to match the filter with the removeHiddenChars() room name because the
|
||||||
// function strips spaces and other characters (M becomes RN for example, in lowercase).
|
// function strips spaces and other characters (M becomes RN for example, in lowercase).
|
||||||
|
return removeHiddenChars(val.toLowerCase())
|
||||||
|
// Strip all punctuation
|
||||||
|
.replace(/[\\'!"#$%&()*+,\-./:;<=>?@[\]^_`{|}~\u2000-\u206f\u2e00-\u2e7f]/g, "")
|
||||||
// We also doubly convert to lowercase to work around oddities of the library.
|
// We also doubly convert to lowercase to work around oddities of the library.
|
||||||
const noSecretsFilter = removeHiddenChars(this.search.toLowerCase()).toLowerCase();
|
.toLowerCase();
|
||||||
const noSecretsName = removeHiddenChars(val.toLowerCase()).toLowerCase();
|
}
|
||||||
return noSecretsName.includes(noSecretsFilter);
|
|
||||||
|
public matches(val: string): boolean {
|
||||||
|
return this.normalize(val).includes(this.normalize(this.search));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue