Selaa lähdekoodia

Fixes #626 - Avoid using object to implement Map

This commit fixes a bug occurring with branch names which are parsable
integers.

They were always shown first in the list of branches (even if they are
not starred) because the chrome implementation does not respect the
insertion order for keys that happen to be parseable integers.
main
Marc Lasson 6 vuotta sitten
committed by Eric Amodio
vanhempi
commit
e1c2c74301
3 muutettua tiedostoa jossa 9 lisäystä ja 8 poistoa
  1. +7
    -6
      src/system/array.ts
  2. +1
    -1
      src/views/nodes/branchOrTagFolderNode.ts
  3. +1
    -1
      src/views/nodes/folderNode.ts

+ 7
- 6
src/system/array.ts Näytä tiedosto

@ -85,7 +85,7 @@ export namespace Arrays {
value?: T;
// parent?: IHierarchicalItem<T>;
children: { [key: string]: IHierarchicalItem<T> } | undefined;
children: Map<string, IHierarchicalItem<T>> | undefined;
descendants: T[] | undefined;
}
@ -98,7 +98,7 @@ export namespace Arrays {
const seed = {
name: '',
relativePath: '',
children: Object.create(null),
children: new Map(),
descendants: []
};
@ -110,18 +110,19 @@ export namespace Arrays {
relativePath = joinPath(relativePath, folderName);
if (folder.children === undefined) {
folder.children = Object.create(null);
folder.children = new Map();
}
let f = folder.children![folderName];
let f = folder.children!.get(folderName);
if (f === undefined) {
folder.children![folderName] = f = {
f = {
name: folderName,
relativePath: relativePath,
// parent: folder,
children: undefined,
descendants: undefined
};
folder.children.set(folderName, f);
}
if (folder.descendants === undefined) {
@ -147,7 +148,7 @@ export namespace Arrays {
): IHierarchicalItem<T> {
if (root.children === undefined) return root;
const children = [...Objects.values(root.children)];
const children = [...root.children.values()];
// // Attempts less nesting but duplicate roots
// if (!isRoot && children.every(c => c.value === undefined)) {

+ 1
- 1
src/views/nodes/branchOrTagFolderNode.ts Näytä tiedosto

@ -32,7 +32,7 @@ export class BranchOrTagFolderNode extends ViewNode {
const children: (BranchOrTagFolderNode | BranchNode | TagNode)[] = [];
for (const folder of Objects.values(this.root.children)) {
for (const folder of this.root.children.values()) {
if (folder.value === undefined) {
// If the folder contains the current branch, expand it by default
const expanded =

+ 1
- 1
src/views/nodes/folderNode.ts Näytä tiedosto

@ -41,7 +41,7 @@ export class FolderNode extends ViewNode {
);
if (nesting !== ViewFilesLayout.List) {
children = [];
for (const folder of Objects.values(this.root.children)) {
for (const folder of this.root.children.values()) {
if (folder.value === undefined) {
children.push(
new FolderNode(

Ladataan…
Peruuta
Tallenna