Skip to content

Commit

Permalink
Refine code
Browse files Browse the repository at this point in the history
  • Loading branch information
kravets-levko committed Dec 27, 2019
1 parent b200465 commit f87b116
Show file tree
Hide file tree
Showing 17 changed files with 34 additions and 55 deletions.
4 changes: 2 additions & 2 deletions client/app/components/queries/ApiKeyDialog/index.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { clone, extend } from "lodash";
import { extend } from "lodash";
import React, { useMemo, useState, useCallback } from "react";
import PropTypes from "prop-types";
import Modal from "antd/lib/modal";
Expand All @@ -22,7 +22,7 @@ function ApiKeyDialog({ dialog, ...props }) {
.post(`api/queries/${query.id}/regenerate_api_key`)
.success(data => {
setUpdatingApiKey(false);
setQuery(extend(clone(query), { api_key: data.api_key }));
setQuery(extend(query.clone(), { api_key: data.api_key }));
})
.error(() => {
setUpdatingApiKey(false);
Expand Down
10 changes: 2 additions & 8 deletions client/app/pages/queries/QuerySource.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ function QuerySource(props) {
}, [query.name]);

const updateQuery = useUpdateQuery(query, setQuery);
const updateQueryDescription = useUpdateQueryDescription(query, setQuery);
const formatQuery = useFormatQuery(query, dataSource ? dataSource.syntax : null, setQuery);

const handleDataSourceChange = useCallback(
dataSourceId => {
Expand Down Expand Up @@ -119,11 +121,8 @@ function QuerySource(props) {
}, [query.data_source_id, queryFlags.isNew, dataSourcesLoaded, dataSources, handleDataSourceChange]);

const openAddToDashboardDialog = useAddToDashboardDialog(query);

const openEmbedDialog = useEmbedDialog(query);

const editSchedule = useEditScheduleDialog(query, setQuery);

const openAddNewParameterDialog = useAddNewParameterDialog(query, (newQuery, param) => {
if (editorRef.current) {
editorRef.current.paste(param.toQueryTextFragment());
Expand All @@ -137,11 +136,8 @@ function QuerySource(props) {
setSelectedVisualization(visualization.id);
});
const editVisualization = useEditVisualizationDialog(query, queryResult, newQuery => setQuery(newQuery));

const deleteVisualization = useDeleteVisualization(query, setQuery);

const formatQuery = useFormatQuery(query, dataSource ? dataSource.syntax : null, setQuery);

const handleSchemaItemSelect = useCallback(schemaItem => {
if (editorRef.current) {
editorRef.current.paste(schemaItem);
Expand All @@ -167,8 +163,6 @@ function QuerySource(props) {
}
}, [canExecuteQuery, isDirty, selectedText, executeQuery, executeAdhocQuery]);

const updateQueryDescription = useUpdateQueryDescription(query, setQuery);

return (
<div className="query-page-wrapper">
<div className="container">
Expand Down
23 changes: 3 additions & 20 deletions client/app/pages/queries/components/QueryPageHeader.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,25 +61,15 @@ function createMenu(menu) {

export default function QueryPageHeader({ query, dataSource, sourceMode, selectedVisualization, onChange }) {
const queryFlags = useQueryFlags(query, dataSource);

const updateName = useRenameQuery(query, onChange);

const updateTags = useUpdateQueryTags(query, onChange);

const archiveQuery = useArchiveQuery(query, onChange);

const publishQuery = usePublishQuery(query, onChange);

const unpublishQuery = useUnpublishQuery(query, onChange);

const duplicateQuery = useDuplicateQuery(query);

const openApiKeyDialog = useApiKeyDialog(query, onChange);

const openPermissionsEditorDialog = usePermissionsEditorDialog(query);

const showPermissionsControl = clientConfig.showPermissionsControl;

const moreActionsMenu = useMemo(
() =>
createMenu([
Expand All @@ -102,7 +92,8 @@ export default function QueryPageHeader({ query, dataSource, sourceMode, selecte
onClick: archiveQuery,
},
managePermissions: {
isAvailable: !queryFlags.isNew && queryFlags.canEdit && !queryFlags.isArchived && showPermissionsControl,
isAvailable:
!queryFlags.isNew && queryFlags.canEdit && !queryFlags.isArchived && clientConfig.showPermissionsControl,
title: "Manage Permissions",
onClick: openPermissionsEditorDialog,
},
Expand All @@ -120,15 +111,7 @@ export default function QueryPageHeader({ query, dataSource, sourceMode, selecte
},
},
]),
[
showPermissionsControl,
queryFlags,
archiveQuery,
unpublishQuery,
openApiKeyDialog,
openPermissionsEditorDialog,
duplicateQuery,
]
[queryFlags, archiveQuery, unpublishQuery, openApiKeyDialog, openPermissionsEditorDialog, duplicateQuery]
);

return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { VisualizationRenderer } from "@/visualizations/VisualizationRenderer";
import Button from "antd/lib/button";
import Modal from "antd/lib/modal";

import "./query-visualization-tabs.less";
import "./QueryVisualizationTabs.less";

const { TabPane } = Tabs;

Expand Down
2 changes: 1 addition & 1 deletion client/app/pages/queries/hooks/useAddNewParameterDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useCallback, useRef } from "react";
import EditParameterSettingsDialog from "@/components/EditParameterSettingsDialog";

export default function useAddNewParameterDialog(query, onParameterAdded) {
const onParameterAddedRef = useRef(null);
const onParameterAddedRef = useRef();
onParameterAddedRef.current = isFunction(onParameterAdded) ? onParameterAdded : () => {};

return useCallback(() => {
Expand Down
2 changes: 1 addition & 1 deletion client/app/pages/queries/hooks/useApiKeyDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useRef, useCallback } from "react";
import ApiKeyDialog from "@/components/queries/ApiKeyDialog";

export default function useApiKeyDialog(query, onChange) {
const onChangeRef = useRef(null);
const onChangeRef = useRef();
onChangeRef.current = isFunction(onChange) ? onChange : () => {};

return useCallback(() => {
Expand Down
2 changes: 1 addition & 1 deletion client/app/pages/queries/hooks/useArchiveQuery.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ function doArchiveQuery(query) {
}

export default function useArchiveQuery(query, onChange) {
const onChangeRef = useRef(null);
const onChangeRef = useRef();
onChangeRef.current = isFunction(onChange) ? onChange : () => {};

return useCallback(() => {
Expand Down
5 changes: 1 addition & 4 deletions client/app/pages/queries/hooks/useAutocompleteFlags.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,5 @@ export default function useAutocompleteFlags(schema) {
localOptions.set("liveAutocomplete", state);
}, []);

return useMemo(
() => [isAvailable, isEnabled, toggleAutocomplete],
[isAvailable, isEnabled, toggleAutocomplete]
);
return useMemo(() => [isAvailable, isEnabled, toggleAutocomplete], [isAvailable, isEnabled, toggleAutocomplete]);
}
6 changes: 3 additions & 3 deletions client/app/pages/queries/hooks/useDeleteVisualization.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import { clone, extend, filter, isFunction } from "lodash";
import { extend, filter, isFunction } from "lodash";
import { useRef, useCallback } from "react";
import { Visualization } from "@/services/visualization";
import notification from "@/services/notification";

export default function useDeleteVisualization(query, onChange) {
const onChangeRef = useRef(null);
const onChangeRef = useRef();
onChangeRef.current = isFunction(onChange) ? onChange : () => {};

return useCallback(
visualizationId =>
Visualization.delete({ id: visualizationId })
.$promise.then(() => {
const filteredVisualizations = filter(query.visualizations, v => v.id !== visualizationId);
onChangeRef.current(extend(clone(query), { visualizations: filteredVisualizations }));
onChangeRef.current(extend(query.clone(), { visualizations: filteredVisualizations }));
})
.catch(() => {
notification.error("Error deleting visualization.", "Maybe it's used in a dashboard?");
Expand Down
1 change: 0 additions & 1 deletion client/app/pages/queries/hooks/useDuplicateQuery.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ export default function useDuplicateQuery(query) {
Query.fork({ id: query.id }).$promise
.then(newQuery => {
tab.location = newQuery.getUrl(true);
return newQuery;
});
}, [query.id]);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useCallback, useRef } from "react";
import EditVisualizationDialog from "@/visualizations/EditVisualizationDialog";

export default function useEditVisualizationDialog(query, queryResult, onChange) {
const onChangeRef = useRef(null);
const onChangeRef = useRef();
onChangeRef.current = isFunction(onChange) ? onChange : () => {};

return useCallback(
Expand Down
2 changes: 1 addition & 1 deletion client/app/pages/queries/hooks/useFormatQuery.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Query } from "@/services/query";
import notification from "@/services/notification";

export default function useFormatQuery(query, syntax, onChange) {
const onChangeRef = useRef(null);
const onChangeRef = useRef();
onChangeRef.current = isFunction(onChange) ? onChange : () => {};

return useCallback(() => {
Expand Down
4 changes: 2 additions & 2 deletions client/app/pages/queries/hooks/useQueryFlags.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { isEmpty } from "lodash";
import { isNil, isEmpty } from "lodash";
import { useMemo } from "react";
import { currentUser } from "@/services/auth";

Expand All @@ -8,7 +8,7 @@ export default function useQueryFlags(query, dataSource = null) {
return useMemo(
() => ({
// state flags
isNew: query.isNew(),
isNew: isNil(query.id),
isDraft: query.is_draft,
isArchived: query.is_archived,

Expand Down
2 changes: 1 addition & 1 deletion client/app/pages/queries/hooks/useUpdateQuery.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ function doSaveQuery(data, { canOverwrite = false } = {}) {
}

export default function useUpdateQuery(query, onChange) {
const onChangeRef = useRef(null);
const onChangeRef = useRef();
onChangeRef.current = isFunction(onChange) ? onChange : () => {};

return useCallback(
Expand Down
11 changes: 7 additions & 4 deletions client/app/pages/queries/hooks/useUpdateQueryDescription.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@ import recordEvent from "@/services/recordEvent";
export default function useUpdateQueryDescription(query, onChange) {
const updateQuery = useUpdateQuery(query, onChange);

return useCallback(description => {
recordEvent("edit_description", "query", query.id);
updateQuery({ description });
}, [query.id, updateQuery]);
return useCallback(
description => {
recordEvent("edit_description", "query", query.id);
updateQuery({ description });
},
[query.id, updateQuery]
);
}
11 changes: 7 additions & 4 deletions client/app/pages/queries/hooks/useUpdateQueryTags.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@ import recordEvent from "@/services/recordEvent";
export default function useUpdateQueryTags(query, onChange) {
const updateQuery = useUpdateQuery(query, onChange);

return useCallback(tags => {
recordEvent("edit_tags", "query", query.id);
updateQuery({ tags })
}, [query.id, updateQuery]);
return useCallback(
tags => {
recordEvent("edit_tags", "query", query.id);
updateQuery({ tags });
},
[query.id, updateQuery]
);
}

0 comments on commit f87b116

Please sign in to comment.