mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Export more UI components via extensions-api (#1285)
* export more UI components via extensions-api, touches #1277 #1284 Signed-off-by: Roman <ixrock@gmail.com> * fix build, added table + notification-store exports Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
1 parent
85f0ef8c2e
commit
f69f8c793f
31 files changed
+138
-120
No files matched your search
@@ -1,5 +1,5 @@
|
||||
import "./table-cell.scss";
|
||||
import type { SortBy, SortParams } from "./table";
|
||||
import type { TableSortBy, TableSortParams } from "./table";
|
||||
|
||||
import React, { ReactNode } from "react";
|
||||
import { autobind, cssNames } from "../../utils";
|
||||
@@ -13,9 +13,9 @@ export interface TableCellProps extends React.DOMAttributes<HTMLDivElement> {
|
||||
title?: ReactNode;
|
||||
checkbox?: boolean; // render cell with a checkbox
|
||||
isChecked?: boolean; // mark checkbox as checked or not
|
||||
sortBy?: SortBy; // column name, must be same as key in sortable object <Table sortable={}/>
|
||||
_sorting?: Partial<SortParams>; // <Table> sorting state, don't use this prop outside (!)
|
||||
_sort?(sortBy: SortBy): void; // <Table> sort function, don't use this prop outside (!)
|
||||
sortBy?: TableSortBy; // column name, must be same as key in sortable object <Table sortable={}/>
|
||||
_sorting?: Partial<TableSortParams>; // <Table> sorting state, don't use this prop outside (!)
|
||||
_sort?(sortBy: TableSortBy): void; // <Table> sort function, don't use this prop outside (!)
|
||||
_nowrap?: boolean; // indicator, might come from parent <TableHead>, don't use this prop outside (!)
|
||||
}
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ import { ItemObject } from "../../item.store";
|
||||
|
||||
// todo: refactor + decouple search from location
|
||||
|
||||
export type SortBy = string;
|
||||
export type OrderBy = "asc" | "desc" | string;
|
||||
export type SortParams = { sortBy: SortBy; orderBy: OrderBy }
|
||||
export type SortingCallback<D = any> = (data: D) => string | number | (string | number)[];
|
||||
export type TableSortBy = string;
|
||||
export type TableOrderBy = "asc" | "desc" | string;
|
||||
export type TableSortParams = { sortBy: TableSortBy; orderBy: TableOrderBy }
|
||||
export type TableSortCallback<D = any> = (data: D) => string | number | (string | number)[];
|
||||
|
||||
export interface TableProps extends React.DOMAttributes<HTMLDivElement> {
|
||||
items?: ItemObject[]; // Raw items data
|
||||
@@ -29,11 +29,11 @@ export interface TableProps extends React.DOMAttributes<HTMLDivElement> {
|
||||
sortable?: {
|
||||
// Define sortable callbacks for every column in <TableHead><TableCell sortBy="someCol"><TableHead>
|
||||
// @sortItem argument in the callback is an object, provided in <TableRow sortItem={someColDataItem}/>
|
||||
[sortBy: string]: SortingCallback;
|
||||
[sortBy: string]: TableSortCallback;
|
||||
};
|
||||
sortSyncWithUrl?: boolean; // sorting state is managed globally from url params
|
||||
sortByDefault?: Partial<SortParams>; // default sorting params
|
||||
onSort?: (params: SortParams) => void; // callback on sort change, default: global sync with url
|
||||
sortByDefault?: Partial<TableSortParams>; // default sorting params
|
||||
onSort?: (params: TableSortParams) => void; // callback on sort change, default: global sync with url
|
||||
noItems?: React.ReactNode; // Show no items state table list is empty
|
||||
selectedItemId?: string; // Allows to scroll list to selected item
|
||||
virtual?: boolean; // Use virtual list component to render only visible rows
|
||||
@@ -55,7 +55,7 @@ export class Table extends React.Component<TableProps> {
|
||||
|
||||
@observable sortParamsLocal = this.props.sortByDefault;
|
||||
|
||||
@computed get sortParams(): Partial<SortParams> {
|
||||
@computed get sortParams(): Partial<TableSortParams> {
|
||||
if (this.props.sortSyncWithUrl) {
|
||||
const sortBy = navigation.searchParams.get("sortBy")
|
||||
const orderBy = navigation.searchParams.get("orderBy")
|
||||
@@ -105,7 +105,7 @@ export class Table extends React.Component<TableProps> {
|
||||
}
|
||||
|
||||
@autobind()
|
||||
protected onSort(params: SortParams) {
|
||||
protected onSort(params: TableSortParams) {
|
||||
const { sortSyncWithUrl, onSort } = this.props;
|
||||
if (sortSyncWithUrl) {
|
||||
setQueryParams(params)
|
||||
@@ -119,11 +119,11 @@ export class Table extends React.Component<TableProps> {
|
||||
}
|
||||
|
||||
@autobind()
|
||||
sort(colName: SortBy) {
|
||||
sort(colName: TableSortBy) {
|
||||
const { sortBy, orderBy } = this.sortParams;
|
||||
const sameColumn = sortBy == colName;
|
||||
const newSortBy: SortBy = colName;
|
||||
const newOrderBy: OrderBy = (!orderBy || !sameColumn || orderBy === "desc") ? "asc" : "desc";
|
||||
const newSortBy: TableSortBy = colName;
|
||||
const newOrderBy: TableOrderBy = (!orderBy || !sameColumn || orderBy === "desc") ? "asc" : "desc";
|
||||
this.onSort({
|
||||
sortBy: String(newSortBy),
|
||||
orderBy: newOrderBy,
|
||||
|
||||
Reference in new issue
Block a user