summaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx')
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx30
1 files changed, 18 insertions, 12 deletions
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx
index d28ca0555..32e4e149c 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx
@@ -13,11 +13,12 @@
You should have received a copy of the GNU General Public License along with
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { HttpStatusCode, TalerErrorDetail, TalerMerchantApi } from "@gnu-taler/taler-util";
+import { HttpStatusCode, TalerErrorDetail, TalerMerchantApi, TalerMerchantInstanceHttpClient } from "@gnu-taler/taler-util";
import {
ErrorType,
HttpError,
HttpResponse,
+ useMerchantApiContext,
useTranslationContext,
} from "@gnu-taler/web-util/browser";
import { Fragment, VNode, h } from "preact";
@@ -25,13 +26,12 @@ import { useState } from "preact/hooks";
import { Loading } from "../../../components/exception/loading.js";
import { NotificationCard } from "../../../components/menu/index.js";
import {
- useInstanceAPI,
useInstanceDetails,
useManagedInstanceDetails,
- useManagementAPI,
} from "../../../hooks/instance.js";
import { Notification } from "../../../utils/types.js";
import { UpdatePage } from "./UpdatePage.js";
+import { useSessionContext } from "../../../context/session.js";
export interface Props {
onBack: () => void;
@@ -44,19 +44,21 @@ export interface Props {
}
export default function Update(props: Props): VNode {
- const { updateInstance } = useInstanceAPI();
+ const { lib } = useMerchantApiContext();
+ const updateInstance = lib.management.updateCurrentInstance.bind(lib.management)
const result = useInstanceDetails();
- return CommonUpdate(props, result, updateInstance, );
+ return CommonUpdate(props, result, updateInstance,);
}
export function AdminUpdate(props: Props & { instanceId: string }): VNode {
- const { updateInstance } = useManagementAPI(
- props.instanceId,
- );
+ const { lib } = useMerchantApiContext();
+ const t = lib.instance(props.instanceId)
+ const updateInstance = lib.instance(props.instanceId).updateCurrentInstance.bind(t)
const result = useManagedInstanceDetails(props.instanceId);
- return CommonUpdate(props, result, updateInstance, );
+ return CommonUpdate(props, result, updateInstance,);
}
+
function CommonUpdate(
{
onBack,
@@ -69,10 +71,11 @@ function CommonUpdate(
TalerMerchantApi.QueryInstancesResponse,
TalerErrorDetail
>,
- updateInstance: any,
+ updateInstance: typeof TalerMerchantInstanceHttpClient.prototype.updateCurrentInstance,
): VNode {
const [notif, setNotif] = useState<Notification | undefined>(undefined);
const { i18n } = useTranslationContext();
+ const { state } = useSessionContext();
if (result.loading) return <Loading />;
if (!result.ok) {
@@ -99,11 +102,14 @@ function CommonUpdate(
onUpdate={(
d: TalerMerchantApi.InstanceReconfigurationMessage,
): Promise<void> => {
- return updateInstance(d)
+ if (state.status !== "loggedIn") {
+ return Promise.resolve();
+ }
+ return updateInstance(state.token, d)
.then(onConfirm)
.catch((error: Error) =>
setNotif({
- message: i18n.str`Failed to create instance`,
+ message: i18n.str`Failed to update instance`,
type: "ERROR",
description: error.message,
}),