@@ -1412,7 +1412,25 @@ const EditorPage = observer(forwardRef<I.BlockRef, Props>((props, ref) => {
14121412 } ;
14131413 C . BlockListTurnInto ( rootId , [ block . id ] , map [ block . content . style ] ) ;
14141414 } else
1415- if ( block . isTextList ( ) || block . isTextQuote ( ) || block . isTextCallout ( ) ) {
1415+ if ( block . isTextList ( ) ) {
1416+ const parent = S . Block . getParentLeaf ( rootId , block . id ) ;
1417+ const parentElement = S . Block . getParentMapElement ( rootId , block . id ) ;
1418+ const canOutdent = parent && parentElement && parent . canHaveChildren ( ) && block . isIndentable ( ) ;
1419+
1420+ if ( canOutdent ) {
1421+ e . preventDefault ( ) ;
1422+
1423+ const idx = parentElement . childrenIds . indexOf ( block . id ) ;
1424+
1425+ Action . move ( rootId , rootId , parent . id , [ block . id ] , I . BlockPosition . Bottom , ( ) => {
1426+ Action . move ( rootId , rootId , block . id , parentElement . childrenIds . slice ( idx ) , I . BlockPosition . Inner ) ;
1427+ focus . setWithTimeout ( block . id , { from : range . from , to : range . to } , 50 ) ;
1428+ } ) ;
1429+ } else {
1430+ C . BlockListTurnInto ( rootId , [ block . id ] , I . TextStyle . Paragraph ) ;
1431+ } ;
1432+ } else
1433+ if ( block . isTextQuote ( ) || block . isTextCallout ( ) ) {
14161434 C . BlockListTurnInto ( rootId , [ block . id ] , I . TextStyle . Paragraph ) ;
14171435 } else {
14181436 ids . length ? blockRemove ( block ) : blockMerge ( block , - 1 , length ) ;
0 commit comments