1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00
joplin/packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx

46 lines
1.1 KiB
TypeScript

import * as React from 'react';
import Button from '../../gui/Button/Button';
import { _ } from '@joplin/lib/locale';
import { ButtonSpec } from '@joplin/lib/services/plugins/api/types';
const styled = require('styled-components').default;
const { space } = require('styled-system');
interface Props {
buttons: ButtonSpec[];
}
const StyledButton = styled(Button)`${space}`;
function buttonTitle(b: ButtonSpec) {
if (b.title) return b.title;
const defaultTitles: Record<string, string> = {
'ok': _('OK'),
'cancel': _('Cancel'),
'yes': _('Yes'),
'no': _('No'),
'close': _('Close'),
};
return defaultTitles[b.id] ? defaultTitles[b.id] : b.id;
}
export default function UserWebviewDialogButtonBar(props: Props) {
function renderButtons() {
const output = [];
for (let i = 0; i < props.buttons.length; i++) {
const b = props.buttons[i];
const marginRight = i !== props.buttons.length - 1 ? '6px' : '0px';
output.push(<StyledButton key={b.id} onClick={b.onClick} title={buttonTitle(b)} mr={marginRight}/>);
}
return output;
}
return (
<div className='user-dialog-button-bar'>
{renderButtons()}
</div>
);
}