feat: nápověda k admin heslu u obnovení nabídky
CI / Generate TypeScript types (push) Successful in 10s
CI / Server unit tests (push) Successful in 25s
CI / Build server (push) Successful in 32s
CI / Build client (push) Successful in 42s
CI / Playwright E2E tests (push) Successful in 1m53s
CI / Build and push Docker image (push) Successful in 46s
CI / Notify (push) Successful in 1s
CI / Generate TypeScript types (push) Successful in 10s
CI / Server unit tests (push) Successful in 25s
CI / Build server (push) Successful in 32s
CI / Build client (push) Successful in 42s
CI / Playwright E2E tests (push) Successful in 1m53s
CI / Build and push Docker image (push) Successful in 46s
CI / Notify (push) Successful in 1s
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { Modal, Button, Form, ListGroup, Alert } from "react-bootstrap";
|
||||
import { Modal, Button, Form, ListGroup, Alert, OverlayTrigger, Tooltip } from "react-bootstrap";
|
||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import { faTrashCan } from "@fortawesome/free-regular-svg-icons";
|
||||
import { faArrowsRotate, faPen, faPlus, faUpRightFromSquare, faXmark } from "@fortawesome/free-solid-svg-icons";
|
||||
@@ -218,6 +218,9 @@ export default function StoreAdminModal({ isOpen, onClose, stores, onStoresChang
|
||||
onChange={e => setHeslo(e.target.value)}
|
||||
onKeyDown={e => e.stopPropagation()}
|
||||
/>
|
||||
<Form.Text className="text-muted">
|
||||
Potřeba pro přidání, úpravu a odebrání obchodu i pro obnovení nabídky (<FontAwesomeIcon icon={faArrowsRotate} />).
|
||||
</Form.Text>
|
||||
</Form.Group>
|
||||
|
||||
<hr />
|
||||
@@ -303,16 +306,31 @@ export default function StoreAdminModal({ isOpen, onClose, stores, onStoresChang
|
||||
<small className="d-flex align-items-baseline gap-2 mt-1">
|
||||
<span className="text-nowrap text-muted">Menu {PROVIDER_LABELS[p.provider]}:</span>
|
||||
<span className={className} title={title}>{text}</span>
|
||||
{/* Zakázané tlačítko nezobrazí tooltip — obalení do span ho zobrazí i bez hesla */}
|
||||
<OverlayTrigger
|
||||
placement="top"
|
||||
overlay={
|
||||
<Tooltip>
|
||||
{heslo
|
||||
? `Znovu stáhnout nabídku z ${PROVIDER_LABELS[p.provider]}`
|
||||
: 'Pro obnovení nabídky zadejte nahoře admin heslo'}
|
||||
</Tooltip>
|
||||
}
|
||||
>
|
||||
<span className="d-inline-block" style={{ cursor: heslo ? undefined : 'not-allowed' }}>
|
||||
<Button
|
||||
variant="link"
|
||||
size="sm"
|
||||
className="p-0"
|
||||
disabled={!heslo || refreshing != null}
|
||||
title={heslo ? `Znovu stáhnout nabídku z ${PROVIDER_LABELS[p.provider]}` : 'Pro obnovení zadejte admin heslo'}
|
||||
style={heslo ? undefined : { pointerEvents: 'none' }}
|
||||
aria-label={`Znovu stáhnout nabídku z ${PROVIDER_LABELS[p.provider]}`}
|
||||
onClick={() => handleRefreshMenu(s.name, p.provider)}
|
||||
>
|
||||
<FontAwesomeIcon icon={faArrowsRotate} spin={refreshing === key} />
|
||||
</Button>
|
||||
</span>
|
||||
</OverlayTrigger>
|
||||
{p.dishCount > 0 && (
|
||||
<Button variant="link" size="sm" className="p-0 text-nowrap"
|
||||
onClick={() => setHistoryOpen(historyOpen === key ? null : key)}>
|
||||
|
||||
Reference in New Issue
Block a user