client/app/pages/queries/hooks/useFormatQuery.js (17 lines of code) (raw):
import { extend, get } from "lodash";
import { useCallback } from "react";
import { Query } from "@/services/query";
import notification from "@/services/notification";
import useImmutableCallback from "@/lib/hooks/useImmutableCallback";
export default function useFormatQuery(query, syntax, onChange) {
const handleChange = useImmutableCallback(onChange);
return useCallback(() => {
Query.format(syntax || "sql", query.query)
.then(queryText => {
handleChange(extend(query.clone(), { query: queryText }));
})
.catch(error =>
notification.error(get(error, "response.data.message", "Failed to format query: unknown error."))
);
}, [query, syntax, handleChange]);
}