Skip to content
This repository was archived by the owner on Mar 1, 2024. It is now read-only.

Commit 11026f5

Browse files
committed
Merge branch 'master' into account-pages
2 parents 06f5d02 + 5383e49 commit 11026f5

File tree

6 files changed

+139
-5
lines changed

6 files changed

+139
-5
lines changed

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@
2626
"commitmsg": "commitlint -e $GIT_PARAMS",
2727
"copytablercsstodist":
2828
"mkdir -p dist && cp src/Tabler.css src/Tabler.RTL.css dist/ && cp -r src/fonts src/images dist/",
29-
"cm": "git-cz"
29+
"cm": "git-cz",
30+
"startagain":
31+
"rm -rf dist node_modules example/node_modules yarn.lock example/yarn.lock && yarn install && cd example && yarn install && cd .. && yarn build"
3032
},
3133
"lint-staged": {
3234
"src/**/*.js": "eslint --max-warnings=0"
@@ -68,7 +70,7 @@
6870
"gh-pages": "^1.1.0",
6971
"husky": "^0.14.3",
7072
"lint-staged": "^7.0.4",
71-
"prettier": "1.12.1",
73+
"prettier": "1.13.0",
7274
"pretty-quick": "^1.4.1",
7375
"react": "^16.2.0",
7476
"react-dom": "^16.2.0",
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
```jsx
2+
<BlogCard
3+
title="And this isn't my nose. This is a false one."
4+
postUrl="#"
5+
description="Look, my liege! The Knights Who Say Ni demand a sacrifice! …Are you suggesting that coconuts migr..."
6+
avatarUrl="https://tabler.github.io/tabler/demo/faces/female/18.jpg"
7+
authorName="Rose Bradley"
8+
profileHref="/profile.html"
9+
date="3 days ago"
10+
imgUrl="https://tabler.github.io/tabler/demo/photos/david-klaasen-54203-500.jpg"
11+
imgAlt="Penguin"
12+
iconName="heart"
13+
iconHref="#"
14+
/>
15+
```
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
//@flow
2+
3+
import * as React from "react";
4+
import Card from "../Card/Card.react";
5+
import Icon from "../Icon/Icon.react";
6+
7+
type Props = {|
8+
+children?: React.Node,
9+
+title?: string,
10+
+titleUrl?: string,
11+
+avatarUrl?: string,
12+
+description?: string,
13+
+date?: string,
14+
+imgUrl?: string,
15+
+iconName?: string,
16+
+iconHref?: string,
17+
+authorName?: string,
18+
+avatarImgSrc?: string,
19+
+imgSrc?: string,
20+
+imgAlt?: string,
21+
+aside?: boolean,
22+
+postHref?: string,
23+
+profileHref?: string,
24+
|};
25+
26+
function BlogCard({
27+
children,
28+
title,
29+
description,
30+
avatarUrl,
31+
imgUrl,
32+
imgAlt,
33+
aside,
34+
authorName,
35+
date,
36+
imgSrc = "",
37+
avatarImgSrc = "",
38+
iconName,
39+
iconHref,
40+
postHref,
41+
profileHref,
42+
}: Props): React.Node {
43+
return !aside ? (
44+
<Card>
45+
<a href={postHref}>
46+
<img className="card-img-top" src={imgSrc} alt={imgAlt} />
47+
</a>
48+
<Card.Body className="d-flex flex-column">
49+
<h4>
50+
<a href={postHref}>{title}</a>
51+
</h4>
52+
<div className="text-muted">{description}</div>
53+
<div className="d-flex align-items-center pt-5 mt-auto">
54+
<div
55+
className="avatar avatar-md mr-3"
56+
style={{ backgroundImage: `url(${avatarImgSrc}` }}
57+
/>
58+
<div>
59+
<a href={profileHref} className="text-default">
60+
{authorName}
61+
</a>
62+
<small className="d-block text-muted">{date}</small>
63+
</div>
64+
<div className="ml-auto text-muted">
65+
<a href={iconHref} className="icon d-none d-md-inline-block ml-3">
66+
<Icon prefix="fe" name={iconName || "heart"} />
67+
</a>
68+
</div>
69+
</div>
70+
</Card.Body>
71+
</Card>
72+
) : (
73+
<Card className="card-aside">
74+
<a
75+
href={postHref}
76+
className="card-aside-column"
77+
style={{ backgroundImage: `url(${imgSrc})` }}
78+
>
79+
{""}
80+
</a>
81+
<Card.Body className="d-flex flex-column">
82+
<h4>
83+
<a href={postHref}>{title}</a>
84+
</h4>
85+
<div className="text-muted">{description}</div>
86+
<div className="d-flex align-items-center pt-5 mt-auto">
87+
<div
88+
className="avatar avatar-md mr-3"
89+
style={{ backgroundImage: `url(${avatarImgSrc}` }}
90+
/>
91+
<div>
92+
<a href={profileHref} className="text-default">
93+
{authorName}
94+
</a>
95+
<small className="d-block text-muted">{date}</small>
96+
</div>
97+
<div className="ml-auto text-red">
98+
<a href={iconHref} className="icon d-none d-md-inline-block ml-3">
99+
<Icon prefix="fe" name={iconName || "heart"} />
100+
</a>
101+
</div>
102+
</div>
103+
</Card.Body>
104+
</Card>
105+
);
106+
}
107+
108+
export default BlogCard;

src/components/BlogCard/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// @flow
2+
3+
import BlogCard from "./BlogCard.react.js";
4+
5+
export { BlogCard as default };

src/components/Card/Card.react.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ type Props = {|
2929
+alert?: React.Node,
3030
+alertColor?: string,
3131
+footer?: string,
32+
+aside?: boolean,
3233
|};
3334

3435
type State = {|
@@ -83,6 +84,7 @@ class Card extends React.PureComponent<Props, State> {
8384
isCollapsible,
8485
isClosable,
8586
isFullscreenable,
87+
aside,
8688
statusColor,
8789
statusSide,
8890
alert,
@@ -96,6 +98,7 @@ class Card extends React.PureComponent<Props, State> {
9698
const classes = cn(
9799
{
98100
card: true,
101+
aside: aside,
99102
"card-collapsed": isCollapsed,
100103
"card-fullscreen": isFullscreen,
101104
},

src/components/index.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ export { default as AccountDropdown } from "./AccountDropdown";
44
export { default as Alert } from "./Alert";
55
export { default as Avatar } from "./Avatar";
66
export { default as Badge } from "./Badge";
7+
export { default as BlogCard } from "./BlogCard";
78
export { default as Button } from "./Button";
89
export { default as Card } from "./Card";
910
export { default as ContactCard } from "./ContactCard";
@@ -15,8 +16,8 @@ export { default as GalleryCard } from "./GalleryCard";
1516
export { default as Grid } from "./Grid";
1617
export { default as Header } from "./Header";
1718
export { default as Icon } from "./Icon";
18-
export { default as Loader } from "./Loader";
1919
export { default as List } from "./List";
20+
export { default as Loader } from "./Loader";
2021
export { default as Media } from "./Media";
2122
export { default as Nav } from "./Nav";
2223
export { default as Notification } from "./Notification";
@@ -30,9 +31,9 @@ export { default as Stamp } from "./Stamp";
3031
export { default as StampCard } from "./StampCard";
3132
export { default as StatsCard } from "./StatsCard";
3233
export { default as StoreCard } from "./StoreCard";
34+
export { default as TabbedCard } from "./TabbedCard";
3335
export { default as Table } from "./Table";
3436
export { default as Tag } from "./Tag";
3537
export { default as Text } from "./Text";
36-
export { default as TabbedCard } from "./TabbedCard";
37-
export { Tab, Tabs, TabbedContainer, TabbedHeader } from "./Tabs";
3838
export { default as Timeline } from "./Timeline";
39+
export { Tab, Tabs, TabbedContainer, TabbedHeader } from "./Tabs";

0 commit comments

Comments
 (0)