[NEW] Better date format for room’s list (#134)

This commit is contained in:
Rodrigo Nascimento 2017-12-08 11:56:53 -02:00 committed by Guilherme Gazzo
parent b2ace37c99
commit d991fd99bc
6 changed files with 32 additions and 40 deletions

View File

@ -6,30 +6,29 @@ import RoomItem from '../app/presentation/RoomItem';
import renderer from 'react-test-renderer';
const date = new Date(2017, 10, 10, 10);
const dateFormat = 'MM-DD-YYYY HH:mm:ss';
jest.mock('react-native-img-cache', () => { return { CachedImage: 'View' } });
it('renders correctly', () => {
expect(renderer.create(<RoomItem type="d" dateFormat={dateFormat} _updatedAt={date} name="name" />).toJSON()).toMatchSnapshot();
expect(renderer.create(<RoomItem type="d" _updatedAt={date} name="name" />).toJSON()).toMatchSnapshot();
});
it('render unread', () => {
expect(renderer.create(<RoomItem type="d" dateFormat={dateFormat} _updatedAt={date} name="name" unread={1} />).toJSON()).toMatchSnapshot();
expect(renderer.create(<RoomItem type="d" _updatedAt={date} name="name" unread={1} />).toJSON()).toMatchSnapshot();
});
it('render unread +999', () => {
expect(renderer.create(<RoomItem type="d" dateFormat={dateFormat} _updatedAt={date} name="name" unread={1000} />).toJSON()).toMatchSnapshot();
expect(renderer.create(<RoomItem type="d" _updatedAt={date} name="name" unread={1000} />).toJSON()).toMatchSnapshot();
});
it('render no icon', () => {
expect(renderer.create(<RoomItem type="X" dateFormat={dateFormat} _updatedAt={date} name="name" />).toJSON()).toMatchSnapshot();
expect(renderer.create(<RoomItem type="X" _updatedAt={date} name="name" />).toJSON()).toMatchSnapshot();
});
it('render private group', () => {
expect(renderer.create(<RoomItem type="g" dateFormat={dateFormat} _updatedAt={date} name="private-group" /> ).toJSON()).toMatchSnapshot();
expect(renderer.create(<RoomItem type="g" _updatedAt={date} name="private-group" /> ).toJSON()).toMatchSnapshot();
});
it('render channel', () => {
expect(renderer.create(<RoomItem type="c" dateFormat={dateFormat} _updatedAt={date} name="general" />).toJSON()).toMatchSnapshot();
expect(renderer.create(<RoomItem type="c" _updatedAt={date} name="general" />).toJSON()).toMatchSnapshot();
});

View File

@ -115,7 +115,7 @@ exports[`render channel 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
</View>
@ -194,7 +194,7 @@ exports[`render no icon 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
</View>
@ -273,7 +273,7 @@ exports[`render private group 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
</View>
@ -388,7 +388,7 @@ exports[`render unread +999 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
<Text
@ -523,7 +523,7 @@ exports[`render unread 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
<Text
@ -658,7 +658,7 @@ exports[`renders correctly 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
</View>

View File

@ -281,7 +281,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
</View>
@ -414,7 +414,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
</View>
@ -545,7 +545,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
<Text
@ -698,7 +698,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
<Text
@ -849,7 +849,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
<Text
@ -1000,7 +1000,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
<Text
@ -1151,7 +1151,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
<Text
@ -1302,7 +1302,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
<Text
@ -1434,7 +1434,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
</View>
@ -1546,7 +1546,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
</View>
@ -1658,7 +1658,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
}
}
>
11-10-2017 10:00:00
Nov 10
</Text>
</View>
</View>

View File

@ -78,8 +78,7 @@ export default class RoomItem extends React.PureComponent {
unread: PropTypes.number,
userMentions: PropTypes.number,
baseUrl: PropTypes.string,
onPress: PropTypes.func,
dateFormat: PropTypes.string
onPress: PropTypes.func
}
get icon() {
@ -110,6 +109,13 @@ export default class RoomItem extends React.PureComponent {
);
}
formatDate = date => moment(date).calendar(null, {
lastDay: 'dddd',
sameDay: 'HH:mm',
lastWeek: 'dddd',
sameElse: 'MMM D'
})
renderNumber = (unread, userMentions) => {
if (!unread || unread <= 0) {
return;
@ -140,7 +146,7 @@ export default class RoomItem extends React.PureComponent {
{this.icon}
<View style={styles.roomNameView}>
<Text style={[styles.roomName, alert && styles.alert]} ellipsizeMode='tail' numberOfLines={1}>{ name }</Text>
{_updatedAt ? <Text style={styles.update} ellipsizeMode='tail' numberOfLines={1}>{ moment(_updatedAt).format(this.props.dateFormat) }</Text> : null}
{_updatedAt ? <Text style={styles.update} ellipsizeMode='tail' numberOfLines={1}>{ this.formatDate(_updatedAt) }</Text> : null}
</View>
{this.renderNumber(unread, userMentions)}
</TouchableOpacity>

View File

@ -242,7 +242,6 @@ export default class RoomsListView extends React.Component {
key={item._id}
type={item.t}
baseUrl={this.props.Site_Url}
dateFormat='MM-DD-YYYY HH:mm:ss'
onPress={() => this._onPressItem(item)}
/>
)

View File

@ -4,7 +4,6 @@ import { ScrollView } from 'react-native';
import RoomItem from '../../../app/presentation/RoomItem';
const date = new Date(2017, 10, 10, 10);
const dateFormat = 'MM-DD-YYYY HH:mm:ss';
export default (
<ScrollView>
@ -12,7 +11,6 @@ export default (
type='d'
name='rocket.cat'
_updatedAt={date}
dateFormat={dateFormat}
baseUrl='https://demo.rocket.chat'
/>
<RoomItem
@ -20,7 +18,6 @@ export default (
unread={0}
alert
_updatedAt={date}
dateFormat={dateFormat}
name='rocket.cat'
baseUrl='https://demo.rocket.chat'
/>
@ -28,7 +25,6 @@ export default (
type='d'
unread={1}
_updatedAt={date}
dateFormat={dateFormat}
name='rocket.cat'
baseUrl='https://demo.rocket.chat'
/>
@ -37,7 +33,6 @@ export default (
unread={9}
alert
_updatedAt={date}
dateFormat={dateFormat}
name="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries"
baseUrl='https://demo.rocket.chat'
/>
@ -45,7 +40,6 @@ export default (
type='d'
unread={99}
_updatedAt={date}
dateFormat={dateFormat}
name="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries"
baseUrl='https://demo.rocket.chat'
/>
@ -54,7 +48,6 @@ export default (
unread={100}
userMentions={0}
_updatedAt={date}
dateFormat={dateFormat}
name="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries"
baseUrl='https://demo.rocket.chat'
/>
@ -63,7 +56,6 @@ export default (
unread={100000}
userMentions={0}
_updatedAt={date}
dateFormat={dateFormat}
name="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries"
baseUrl='https://demo.rocket.chat'
/>
@ -72,7 +64,6 @@ export default (
unread={100000}
userMentions={1}
_updatedAt={date}
dateFormat={dateFormat}
name="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries"
baseUrl='https://demo.rocket.chat'
/>
@ -80,21 +71,18 @@ export default (
type='d'
name='W'
_updatedAt={date}
dateFormat={dateFormat}
unread={-100}
/>
<RoomItem
type='d'
name='WW'
_updatedAt={date}
dateFormat={dateFormat}
unread={-100}
/>
<RoomItem
type='d'
name=''
_updatedAt={date}
dateFormat={dateFormat}
unread={-100}
/>
</ScrollView>