Cada item recebe um
pos (um número JavaScript, portanto, float de precisão dupla). Em seguida, eles são renderizados classificando por pos . Quando um novo item é adicionado, é
pos é baseado em onde na lista está:- parte inferior da lista - máximo de
posatualmente na lista + um buffer (acho que1024é usado) - topo da lista - mínimo
posatualmente na lista dividida por dois - meio da lista - média de
posdos dois itens adjacentes
A opção do meio seria atribuída pelo cliente; o top/bottom pode ser atribuído pelo cliente ou passado para o servidor como as strings
"top" ou "bottom" nesse caso, o servidor executará a lógica. No servidor, após atribuir o
pos para o novo item, conforme mostrado acima, o item é verificado em relação aos vizinhos mais próximos quanto à adjacência - se eles estiverem a menos de uma distância mínima (.01 é usado, eu acredito), eles estão espalhados (potencialmente em cascata para aumentar o pos de toda a lista). Não acho que essa seja a maneira ideal, mas é assim que o Trello faz.