文件
chen 301194963b
一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
feat: Initial clean release of CHM
2026-11-04 11:29:39 +08:00

32 行
1.0 KiB
TypeScript

import * as React from 'react';
import Dialog from '@joplin/lib/components/Dialog';
import { _ } from '@joplin/lib/locale';
interface Props {
message: string;
hasCloseButton: boolean;
onClose: ()=> void;
}
const ModalMessageOverlay: React.FC<Props> = ({ message, hasCloseButton, onClose }) => {
let brIndex = 1;
const lines = message.split('\n').map((line: string) => {
if (!line.trim()) return <br key={`${brIndex++}`}/>;
return <div key={line} className="text">{line}</div>;
});
return <Dialog contentFillsScreen={true} onCancel={hasCloseButton ? onClose : undefined}>
<div className={`modal-message ${hasCloseButton ? '-with-close-button' : ''}`}>
{!hasCloseButton && <div className="loading-animation" />}
<div className={`text ${hasCloseButton ? 'modal-message-scrollable-content' : ''}`} role="status">
{lines}
</div>
{hasCloseButton && <div className="modal-message-actions">
<button type="button" onClick={onClose}>{_('OK')}</button>
</div>}
</div>
</Dialog>;
};
export default ModalMessageOverlay;