mocked tab list
This commit is contained in:
parent
479fb26434
commit
2b2a6a5c4b
|
@ -7,6 +7,42 @@
|
||||||
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
|
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.itemContent{
|
||||||
|
margin-left: 10;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemName{
|
||||||
|
font-size: initial;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: 'hidden';
|
||||||
|
text-overflow: 'ellipsis';
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemCell{
|
||||||
|
margin: 2px;
|
||||||
|
min-height: 54;
|
||||||
|
padding: 10;
|
||||||
|
box-sizing: 'border-box';
|
||||||
|
//border: 1px solid;
|
||||||
|
display: 'flex';
|
||||||
|
background : $ms-color-themeDarkAlt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemCell:hover{
|
||||||
|
background : $ms-color-themeDarker;
|
||||||
|
}
|
||||||
|
.itemIndex {
|
||||||
|
font-size : initial;
|
||||||
|
//color : $ms-color-neutralTertiary;
|
||||||
|
margin-bottom : 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablink{
|
||||||
|
color : $ms-color-neutralTertiary;
|
||||||
|
margin-bottom : 10;
|
||||||
|
}
|
||||||
|
|
||||||
.row {
|
.row {
|
||||||
@include ms-Grid-row;
|
@include ms-Grid-row;
|
||||||
@include ms-fontColor-white;
|
@include ms-fontColor-white;
|
||||||
|
@ -37,38 +73,5 @@
|
||||||
@include ms-fontColor-white;
|
@include ms-fontColor-white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.button {
|
|
||||||
// Our button
|
|
||||||
text-decoration: none;
|
|
||||||
height: 32px;
|
|
||||||
|
|
||||||
// Primary Button
|
}
|
||||||
min-width: 80px;
|
|
||||||
background-color: $ms-color-themePrimary;
|
|
||||||
border-color: $ms-color-themePrimary;
|
|
||||||
color: $ms-color-white;
|
|
||||||
|
|
||||||
// Basic Button
|
|
||||||
outline: transparent;
|
|
||||||
position: relative;
|
|
||||||
font-family: "Segoe UI WestEuropean","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",sans-serif;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
font-size: $ms-font-size-m;
|
|
||||||
font-weight: $ms-font-weight-regular;
|
|
||||||
border-width: 0;
|
|
||||||
text-align: center;
|
|
||||||
cursor: pointer;
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0 16px;
|
|
||||||
|
|
||||||
.label {
|
|
||||||
font-weight: $ms-font-weight-semibold;
|
|
||||||
font-size: $ms-font-size-m;
|
|
||||||
height: 32px;
|
|
||||||
line-height: 32px;
|
|
||||||
margin: 0 4px;
|
|
||||||
vertical-align: top;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,24 +2,93 @@ import * as React from 'react';
|
||||||
import styles from './ReactTeamsTabsPnpjs.module.scss';
|
import styles from './ReactTeamsTabsPnpjs.module.scss';
|
||||||
import { IReactTeamsTabsPnpjsProps } from './IReactTeamsTabsPnpjsProps';
|
import { IReactTeamsTabsPnpjsProps } from './IReactTeamsTabsPnpjsProps';
|
||||||
import { escape } from '@microsoft/sp-lodash-subset';
|
import { escape } from '@microsoft/sp-lodash-subset';
|
||||||
|
import { Label } from 'office-ui-fabric-react/lib/Label';
|
||||||
|
import { Pivot, PivotItem, IPivotProps, PivotLinkSize, PivotLinkFormat } from 'office-ui-fabric-react/lib/Pivot';
|
||||||
|
import { FocusZone, FocusZoneDirection } from 'office-ui-fabric-react/lib/FocusZone';
|
||||||
|
import { List } from 'office-ui-fabric-react/lib/List';
|
||||||
|
import { Link } from 'office-ui-fabric-react/lib/Link';
|
||||||
|
import { ITheme, mergeStyleSets, getTheme, getFocusStyle } from 'office-ui-fabric-react/lib/Styling';
|
||||||
|
|
||||||
export default class ReactTeamsTabsPnpjs extends React.Component<IReactTeamsTabsPnpjsProps, {}> {
|
|
||||||
public render(): React.ReactElement<IReactTeamsTabsPnpjsProps> {
|
export interface IReactTeamsTabsPnpjsState {
|
||||||
|
pivotArray: any[];
|
||||||
|
}
|
||||||
|
export default class ReactTeamsTabsPnpjs extends React.Component<IReactTeamsTabsPnpjsProps, IReactTeamsTabsPnpjsState> {
|
||||||
|
|
||||||
|
constructor(props: IReactTeamsTabsPnpjsProps) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
pivotArray: []
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// sp.web.lists.getByTitle("Site Pages").items.filter("Is_x0020_Model eq 1").select("Title,FileRef").getAll().then((items: any[]) => {
|
||||||
|
// var tmpItems: any[] = new Array();
|
||||||
|
//
|
||||||
|
// //DropDown initialization
|
||||||
|
// items.forEach(element => {
|
||||||
|
// var item = { key: element["FileRef"], text: element["Title"] };
|
||||||
|
// tmpItems.push(item);
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// this.setState({ allItems: tmpItems });
|
||||||
|
// });
|
||||||
|
|
||||||
|
this._onRenderTabItem = this._onRenderTabItem.bind(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public render() {
|
||||||
return (
|
return (
|
||||||
<div className={ styles.reactTeamsTabsPnpjs }>
|
<div className={styles.reactTeamsTabsPnpjs}>
|
||||||
<div className={ styles.container }>
|
<div className={styles.container}>
|
||||||
<div className={ styles.row }>
|
<div className={styles.row}>
|
||||||
<div className={ styles.column }>
|
<div className={styles.column}>
|
||||||
<span className={ styles.title }>Welcome to SharePoint!</span>
|
<div>
|
||||||
<p className={ styles.subTitle }>Customize SharePoint experiences using Web Parts.</p>
|
<Pivot linkSize={PivotLinkSize.large} linkFormat={PivotLinkFormat.tabs}>{this.state.pivotArray}</Pivot>
|
||||||
<p className={ styles.description }>{escape(this.props.description)}</p>
|
</div>
|
||||||
<a href="https://aka.ms/spfx" className={ styles.button }>
|
|
||||||
<span className={ styles.label }>Learn more</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
public componentDidMount() {
|
||||||
|
var activeTasks: any[] = [];
|
||||||
|
var tmPpivotArray: any[] = [];
|
||||||
|
|
||||||
|
|
||||||
|
activeTasks.push({ name: 'a name', description: 'a desc' });
|
||||||
|
activeTasks.push({ name: 'b name', description: 'b desc' });
|
||||||
|
activeTasks.push({ name: 'c name', description: 'c desc' });
|
||||||
|
|
||||||
|
tmPpivotArray.push(this._renderPivotItemList(activeTasks, "test1"));
|
||||||
|
tmPpivotArray.push(this._renderPivotItemList(activeTasks, "test2"));
|
||||||
|
tmPpivotArray.push(this._renderPivotItemList(activeTasks, "test3"));
|
||||||
|
|
||||||
|
|
||||||
|
this.setState({ pivotArray: tmPpivotArray });
|
||||||
|
}
|
||||||
|
|
||||||
|
private _renderPivotItemList(channels: any[], tabName: string){
|
||||||
|
return (
|
||||||
|
<PivotItem headerText={`${tabName} (${channels.length})`}>
|
||||||
|
<FocusZone direction={FocusZoneDirection.vertical} >
|
||||||
|
<List items={channels} onRenderCell={this._onRenderTabItem} />
|
||||||
|
</FocusZone>
|
||||||
|
</PivotItem>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private _onRenderTabItem(item: any, index: number | undefined) {
|
||||||
|
return (
|
||||||
|
<div className={styles.itemCell} data-is-focusable={true}>
|
||||||
|
<div className={styles.itemContent}>
|
||||||
|
<div className={styles.itemName}>{item.name}</div>
|
||||||
|
<Link className={styles.tablink} href="http://dev.office.com/fabric/components/link" target="_blank">it renders as an anchor tag.</Link>
|
||||||
|
<div className={styles.subTitle}>{item.description}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue