{headerDisplayString}
- FACILITIES_DOWNLOAD_LIMIT
- }
- upgrade={
- !embed &&
- facilitiesCount >
- user.allowed_records_number
- }
- userAllowedRecords={user.allowed_records_number}
- setLoginRequiredDialogIsOpen={
- setLoginRequiredDialogIsOpen
- }
- facilitiesCount={facilitiesCount}
- />
+
- FACILITIES_DOWNLOAD_LIMIT
- }
- userAllowedRecords={FACILITIES_DOWNLOAD_LIMIT}
- setLoginRequiredDialogIsOpen={
- setLoginRequiredDialogIsOpen
- }
- />
-
+ />
@@ -322,52 +285,10 @@ function NonVectorTileFilterSidebarFacilitiesTab({
/>
-
+
setLoginRequiredDialogIsOpen(false)}
+ />
);
}
@@ -376,6 +297,7 @@ NonVectorTileFilterSidebarFacilitiesTab.defaultProps = {
data: null,
error: null,
user: null,
+ isSameContributor: false,
};
NonVectorTileFilterSidebarFacilitiesTab.propTypes = {
@@ -388,6 +310,7 @@ NonVectorTileFilterSidebarFacilitiesTab.propTypes = {
updateFilterText: func.isRequired,
embed: bool.isRequired,
user: userPropType,
+ isSameContributor: bool,
};
function mapStateToProps({
@@ -411,6 +334,7 @@ function mapStateToProps({
filterText,
windowHeight,
embed: !!embed,
+ isSameContributor: get(data, 'is_same_contributor', false),
};
}
diff --git a/src/react/src/components/RouterLink.jsx b/src/react/src/components/RouterLink.jsx
new file mode 100644
index 000000000..f84ccbf1a
--- /dev/null
+++ b/src/react/src/components/RouterLink.jsx
@@ -0,0 +1,14 @@
+import React from 'react';
+import { Link } from 'react-router-dom';
+import { oneOfType, string, object } from 'prop-types';
+
+const RouterLink = React.forwardRef((props, ref) => {
+ const { to, ...other } = props;
+ return ;
+});
+
+RouterLink.propTypes = {
+ to: oneOfType([string, object]).isRequired,
+};
+
+export default RouterLink;
diff --git a/src/react/src/util/getTooltipForFacilitiesDownload.jsx b/src/react/src/util/getTooltipForFacilitiesDownload.jsx
index 4f2fe029e..42119bdcd 100644
--- a/src/react/src/util/getTooltipForFacilitiesDownload.jsx
+++ b/src/react/src/util/getTooltipForFacilitiesDownload.jsx
@@ -13,6 +13,7 @@ const getTooltipForFacilitiesDownload = ({
upgrade,
classes,
facilitiesCount,
+ isSameContributor,
}) => {
const tooltipTexts = {
availableDownloads: `Registered users can download up to ${FREE_FACILITIES_DOWNLOAD_LIMIT} production
@@ -25,6 +26,8 @@ const getTooltipForFacilitiesDownload = ({
continue.`,
anonymousUser: 'Log in or sign up to download this dataset.',
embeddedOrPrivateInstance: `Downloads are supported for searches resulting in ${FACILITIES_DOWNLOAD_LIMIT} production locations or less.`,
+ sameContributor:
+ 'You are downloading data for the same contributor as your account. Downloading data for the same contributor is free.',
};
// Determine base tooltip.
@@ -32,6 +35,8 @@ const getTooltipForFacilitiesDownload = ({
if (isEmbedded || isPrivateInstance) {
tooltipText = tooltipTexts.embeddedOrPrivateInstance;
+ } else if (isSameContributor) {
+ tooltipText = tooltipTexts.sameContributor;
} else if (upgrade) {
tooltipText =
userAllowedRecords === 0
diff --git a/src/react/src/util/util.js b/src/react/src/util/util.js
index e21ab8027..64cc73604 100644
--- a/src/react/src/util/util.js
+++ b/src/react/src/util/util.js
@@ -1739,7 +1739,9 @@ export const processDromoResults = (
return;
}
- const headers = Object.keys(results[0]);
+ const headers = Object.keys(results[0]).filter(
+ header => header !== 'is_same_contributor',
+ );
const csvRows = results.map(row =>
headers.map(header => formatCSVField(row[header])).join(','),
);