- To get started, edit the page.tsx file. -
-- Looking for a starting point or more instructions? Head over to{" "} - - Templates - {" "} - or the{" "} - - Learning - {" "} - center. -
-diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..779ad19 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..03b52fe --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,33 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Create new component", + "type": "shell", + "command": "mkdir -p '${workspaceFolder}/src/components/${input:type}/${input:dirName}/interfaces' && touch '${workspaceFolder}/src/components/${input:type}/${input:dirName}/interfaces/index.ts' '${workspaceFolder}/src/components/${input:type}/${input:dirName}/${input:dirName}.tsx' '${workspaceFolder}/src/components/${input:type}/${input:dirName}/${input:dirName}.module.scss' '${workspaceFolder}/src/components/${input:type}/${input:dirName}/index.ts' && echo 'export interface Props${input:dirName} {}' >> '${workspaceFolder}/src/components/${input:type}/${input:dirName}/interfaces/index.ts' && echo 'export { default } from \"./${input:dirName}\";' >> '${workspaceFolder}/src/components/${input:type}/${input:dirName}/index.ts' && echo 'import React from \"react\"; \n\nimport {Props${input:dirName}} from \"./interfaces\"; \nimport styles from \"./${input:dirName}.module.scss\"; \n\nfunction ${input:dirName}({}:Props${input:dirName}) { \n\treturn
- Looking for a starting point or more instructions? Head over to{" "} - - Templates - {" "} - or the{" "} - - Learning - {" "} - center. -
-+ Vui lòng chờ, đang tải dữ liệu! +
+{note}
+ + {button &&{name}:
+ ++ {value.length === 0 || value.length === listOption.length + ? "Tất cả" + : `${value.length} ${name.toLowerCase()}`} +
+Tất cả
+ + {isAllSelected && ( + + )} +{item.name}
+ + {active && ( + + )} ++ {current?.text ?? "---"} +
+{note}
} + + {/* ACTIONS */} +Hiển thị
+ ++ trong tổng {total} kết quả +
+| } + + {column.map((col, i) => { + const isActive = col.sortTable === sortConfig.key; + + return ( + | {
+ thRefs.current[i] = el;
+ }}
+ onClick={() => col.sortTable && handleSort(col.sortTable)}
+ className={clsx(
+ "px-4 py-3 text-left text-[15px] font-semibold whitespace-nowrap",
+ col.sortTable && "cursor-pointer",
+ isActive && "text-blue-600",
+ col.fixedLeft && "sticky left-0 bg-white z-10",
+ col.fixedRight && "sticky right-0 bg-white z-10",
+ )}
+ >
+
+ {col.checkBox && (
+
+ )}
+
+ {col.title}
+
+ {col.sortTable &&
+ (isActive ? (
+ sortConfig.direction === "asc" ? (
+
+ ) : sortConfig.direction === "desc" ? (
+
+ ) : (
+
+ )
+ ) : (
+
+ ))}
+
+ |
+ );
+ })}
+
|---|
+ { + // currentUserProfile?.fullName || + "User admin" + } +
+ + {/* ChevronDown */} + + {/* {openProfile && ( +Thông tin cá nhân
+Chi tiết tài khoản
+Đăng xuất
+Đăng xuất khỏi hệ thống
+{tab.title}
+ + ); + })} +{item.title}
++ Mã hãng hàng không +
++ {airlines.code} +
++ Tên hãng hàng không +
++ {airlines.name} +
+Mã IATA
++ {airlines.iataCode} +
+Mã ICAO
++ {airlines.icaoCode} +
+Website
++ {airlines.website} +
++ Trạng thái +
+ ++ Xem chi tiết +
++ Mã châu lục +
++ {continent?.code} +
++ Tên châu lục +
++ {continent?.name} +
++ TRẠNG THÁI: +
++ Xem chi tiết +
++ Mã quốc gia +
++ {countries.code} +
++ Tên quốc gia +
++ {countries.name} +
+Mã ISO 2
++ {countries.iso2Code} +
+Mã ISO 3
++ {countries.iso3Code} +
++ Mã điện thoại +
++ {countries.phoneCode} +
++ Mã tiền tệ +
++ {countries.currencyCode} +
+Múi giờ
++ {countries.timezone} +
++ Trạng thái +
+ ++ Xem chi tiết +
++ Mã vùng miền +
++ {countryRegions?.code} +
++ Tên vùng miền +
++ {countryRegions?.name} +
++ TRẠNG THÁI: +
++ Xem chi tiết +
++ handleChangeType(setTypeCalendarLeft, typeCalendarLeft) + } + > + {titleMonthYear(dateLeft, typeCalendarLeft, yearTableLeft)} +
++ handleChangeType(setTypeCalendarRight, typeCalendarRight) + } + > + {titleMonthYear(dateRight, typeCalendarRight, yearTableRight)} +
++ {errorText[name]} +
+ )} + + {/* NOTE */} + {note && ( ++ {note} +
+ )} ++ {selectedOption ? getOptionLabel(selectedOption) : placeholder} +
+ + {/* CLEAR BUTTON */} + {onClean && !!value && !readOnly && ( ++ Danh sách lựa chọn rỗng! +
++ {selectedItems.length > 0 + ? `Đã chọn ${selectedItems.length} ${text}` + : placeholder} +
+ + + {/*+ Đã chọn:{" "} + {listDataTerm.length} +
+Danh sách lựa chọn rỗng!
++ {selectedItem ? selectedLabel : placeholder} +
+Danh sách lựa chọn rỗng!
++ {errorText[name]} +
+ )} +{label}
+ ) : ( + label + )} +