mattermost-mobile/share_extension/components/servers_list/servers_list.tsx
Elias Nahum 6eadc527bb
Gekidou Android share extension (#6803)
* Refactor app database queries to not require the app database as argument

* Android Share Extension and fix notifications prompt

* feedback review
2022-11-30 23:18:56 +02:00

57 lines
1.5 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React, {useCallback, useMemo} from 'react';
import {useIntl} from 'react-intl';
import {FlatList, ListRenderItemInfo, StyleSheet, View} from 'react-native';
import {sortServersByDisplayName} from '@utils/server';
import ServerItem from './server_item';
import type ServersModel from '@typings/database/models/app/servers';
type Props = {
servers: ServersModel[];
theme: Theme;
}
const styles = StyleSheet.create({
container: {
flex: 1,
marginTop: 16,
marginHorizontal: 20,
},
contentContainer: {
marginVertical: 4,
},
});
const keyExtractor = (item: ServersModel) => item.url;
const ServersList = ({servers, theme}: Props) => {
const intl = useIntl();
const data = useMemo(() => sortServersByDisplayName(servers, intl), [intl.locale, servers]);
const renderServer = useCallback(({item}: ListRenderItemInfo<ServersModel>) => {
return (
<ServerItem
server={item}
theme={theme}
/>
);
}, [theme]);
return (
<View style={styles.container}>
<FlatList
data={data}
renderItem={renderServer}
keyExtractor={keyExtractor}
contentContainerStyle={styles.contentContainer}
/>
</View>
);
};
export default ServersList;