| Current File : /home/digitaw/www/wp-content/updraft/plugins-old/simple-history/src/components/EventsList.jsx |
import { __experimentalSpacer as Spacer } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
import { clsx } from 'clsx';
import { Event } from './Event';
import { EventsPagination } from './EventsPagination';
/**
* Renders a list of events.
*
* @param {Object} props
*/
export function EventsList( props ) {
const {
events,
page,
setPage,
eventsIsLoading,
eventsMeta,
prevEventsMaxId,
mapsApiKey,
hasExtendedSettingsAddOn,
} = props;
const totalPages = eventsMeta.totalPages;
const ulClasses = clsx( {
SimpleHistoryLogitems: true,
'is-loading': eventsIsLoading,
} );
return (
<div style={ { backgroundColor: 'white', minHeight: '300px' } }>
{ eventsIsLoading === false && events.length === 0 && (
<p style={ { padding: '1rem' } }>
{ __(
'Your search did not match any history events.',
'simple-history'
) }
</p>
) }
<ul className={ ulClasses }>
{ events.map( ( event ) => (
<Event
key={ event.id }
event={ event }
mapsApiKey={ mapsApiKey }
hasExtendedSettingsAddOn={ hasExtendedSettingsAddOn }
isNewAfterFetchNewEvents={ event.id > prevEventsMaxId }
/>
) ) }
</ul>
<Spacer margin={ 4 } />
<EventsPagination
page={ page }
totalPages={ totalPages }
onClickPrev={ () => setPage( page - 1 ) }
onClickNext={ () => setPage( page + 1 ) }
onChangePage={ ( newPage ) =>
setPage( parseInt( newPage, 10 ) )
}
/>
<Spacer paddingBottom={ 4 } />
</div>
);
}