@wener/console
Version:
Base console UI toolkit
44 lines (43 loc) • 2.06 kB
JavaScript
'use client';
import { useId } from 'react';
import { createPortal } from 'react-dom';
import { useMounted } from '@wener/reaction';
export var UpdateNotificationToast = function(props) {
var id = useId();
var mounted = useMounted();
if (!mounted) {
return null;
}
// https://github.com/GreatAuk/plugin-web-update-notification/blob/master/packages/core/src/shim.d.ts
var _Object_assign = Object.assign({}, Locals.zh_CN, props), title = _Object_assign.title, description = _Object_assign.description, open = _Object_assign.open, refreshButtonText = _Object_assign.refreshButtonText, dismissButtonText = _Object_assign.dismissButtonText, _Object_assign_onRefresh = _Object_assign.onRefresh, onRefresh = _Object_assign_onRefresh === void 0 ? function() {
location.reload();
} : _Object_assign_onRefresh, onOpenChange = _Object_assign.onOpenChange;
if (!open) {
return null;
}
return /*#__PURE__*/ createPortal(/*#__PURE__*/ React.createElement("div", {
className: "toast toast-end bg-base-100 isolate z-50 mr-4 mb-4 rounded p-4 shadow"
}, /*#__PURE__*/ React.createElement("h3", {
className: 'font-bold'
}, title), /*#__PURE__*/ React.createElement("p", null, description), /*#__PURE__*/ React.createElement("div", {
className: 'flex justify-end gap-4'
}, onOpenChange && /*#__PURE__*/ React.createElement("button", {
type: 'button',
className: 'btn btn-ghost btn-sm',
onClick: function() {
return onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false);
}
}, dismissButtonText), /*#__PURE__*/ React.createElement("button", {
type: 'button',
className: 'btn btn-primary btn-sm',
onClick: onRefresh
}, refreshButtonText))), document.body, id);
};
var Locals = {
zh_CN: {
title: '发现新版本',
description: '网页更新啦!请刷新页面后使用。',
refreshButtonText: '刷新',
dismissButtonText: '忽略'
}
};