1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-08-09 23:45:31 +02:00

feat: Added feature - open card once created with Ctrl+Enter

This commit is contained in:
RAR 2023-01-08 03:26:16 +01:00
parent 6021d67a00
commit f5d83d0456
3 changed files with 28 additions and 20 deletions

View file

@ -21,36 +21,42 @@ const CardAdd = React.memo(({ isOpened, onCreate, onClose }) => {
const nameField = useRef(null); const nameField = useRef(null);
const submit = useCallback(() => { const submit = useCallback(
const cleanData = { (openCard) => {
...data, const cleanData = {
name: data.name.trim(), ...data,
}; name: data.name.trim(),
open: openCard,
};
if (!cleanData.name) { if (!cleanData.name) {
nameField.current.ref.current.select(); nameField.current.ref.current.select();
return; return;
} }
onCreate(cleanData); onCreate(cleanData);
setData(DEFAULT_DATA);
setData(DEFAULT_DATA); focusNameField();
focusNameField(); },
}, [onCreate, data, setData, focusNameField]); [onCreate, data, setData, focusNameField],
);
const handleFieldKeyDown = useCallback( const handleFieldKeyDown = useCallback(
(event) => { (event) => {
switch (event.key) { switch (event.key) {
case 'Enter': case 'Enter': {
event.preventDefault(); event.preventDefault();
submit(); const openCard = event.ctrlKey;
submit(openCard);
break; break;
case 'Escape': }
case 'Escape': {
onClose(); onClose();
break; break;
}
default: default:
} }
}, },

View file

@ -84,7 +84,7 @@ export default {
editUsername_title: 'Edit Username', editUsername_title: 'Edit Username',
email: 'E-mail', email: 'E-mail',
emailAlreadyInUse: 'E-mail already in use', emailAlreadyInUse: 'E-mail already in use',
enterCardTitle: 'Enter card title...', enterCardTitle: 'Enter card title... [Ctrl+Enter] to open',
enterDescription: 'Enter description...', enterDescription: 'Enter description...',
enterFilename: 'Enter filename', enterFilename: 'Enter filename',
enterListTitle: 'Enter list title...', enterListTitle: 'Enter list title...',

View file

@ -1,6 +1,6 @@
import { call, put, select } from 'redux-saga/effects'; import { call, put, select } from 'redux-saga/effects';
import { goToBoard } from './router'; import { goToBoard, goToCard } from './router';
import request from '../request'; import request from '../request';
import selectors from '../../../selectors'; import selectors from '../../../selectors';
import actions from '../../../actions'; import actions from '../../../actions';
@ -33,8 +33,10 @@ export function* createCard(listId, data) {
yield put(actions.createCard.failure(localId, error)); yield put(actions.createCard.failure(localId, error));
return; return;
} }
yield put(actions.createCard.success(localId, card)); yield put(actions.createCard.success(localId, card));
if (data.open) {
yield call(goToCard, card.id);
}
} }
export function* handleCardCreate(card) { export function* handleCardCreate(card) {