Skip to content

Commit 65bd4b2

Browse files
committed
[#1526] Refactor FileName component
- Create function parseFileName to separate a file name into first letter, last letter, middle, extension
1 parent 937421e commit 65bd4b2

File tree

1 file changed

+33
-19
lines changed

1 file changed

+33
-19
lines changed

client/modules/IDE/components/FileNode.jsx

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,39 +10,53 @@ import FolderRightIcon from '../../../images/triangle-arrow-right.svg';
1010
import FolderDownIcon from '../../../images/triangle-arrow-down.svg';
1111
import FileIcon from '../../../images/file.svg';
1212

13-
function FileName({ name }) {
13+
function parseFileName(name) {
1414
const nameArray = name.split('.');
1515
if (nameArray.length > 1) {
1616
const extension = `.${nameArray[nameArray.length - 1]}`;
17-
const fileName = nameArray.slice(0, -1).join('');
18-
const firstLetter = fileName[0];
19-
const lastLetter = fileName[fileName.length - 1];
20-
const middleText = fileName.slice(1, -1);
21-
return (
22-
<span className="sidebar__file-item-name-text">
23-
<span>{firstLetter}</span>
24-
{fileName.length > 2 &&
25-
<span className="sidebar__file-item-name--ellipsis">{middleText}</span>
26-
}
27-
{fileName.length > 1 &&
28-
<span>{lastLetter}</span>
29-
}
30-
<span>{extension}</span>
31-
</span>
32-
);
17+
const baseName = nameArray.slice(0, -1).join('');
18+
const firstLetter = baseName[0];
19+
const lastLetter = baseName[baseName.length - 1];
20+
const middleText = baseName.slice(1, -1);
21+
return {
22+
baseName,
23+
firstLetter,
24+
lastLetter,
25+
middleText,
26+
extension
27+
};
3328
}
3429
const firstLetter = name[0];
3530
const lastLetter = name[name.length - 1];
3631
const middleText = name.slice(1, -1);
32+
return {
33+
baseName: name,
34+
firstLetter,
35+
lastLetter,
36+
middleText
37+
};
38+
}
39+
40+
function FileName({ name }) {
41+
const {
42+
baseName,
43+
firstLetter,
44+
lastLetter,
45+
middleText,
46+
extension
47+
} = parseFileName(name);
3748
return (
3849
<span className="sidebar__file-item-name-text">
3950
<span>{firstLetter}</span>
40-
{name.length > 2 &&
51+
{baseName.length > 2 &&
4152
<span className="sidebar__file-item-name--ellipsis">{middleText}</span>
4253
}
43-
{name.length > 1 &&
54+
{baseName.length > 1 &&
4455
<span>{lastLetter}</span>
4556
}
57+
{extension &&
58+
<span>{extension}</span>
59+
}
4660
</span>
4761
);
4862
}

0 commit comments

Comments
 (0)