<commit_before>import React, {FunctionComponent} from 'react'

import {getLogs, Log} from '../clients/logs'

const ActivityLog: FunctionComponent = () => {
  const [logs, setLogs] = React.useState<Log[]>([])

  function updateLogs() {
    getLogs().then((value) => setLogs(value))
  }

  React.useEffect(updateLogs, [])

  return (
    <>
      <div className="row standalone">
        <div className="standalone">
          <div className="standalone-content">
            <h2>Activity Log</h2>
            <p>
              Here you can see any recent log messages that were generated for
              your account.
            </p>
            <table>
              <thead>
                <tr>
                  <th>Timestamp</th>
                  <th>Message</th>
                </tr>
              </thead>
              <tbody>
                {logs.length === 0 && (
                  <tr>
                    <td colSpan={2}>No log messages found</td>
                  </tr>
                )}
                {logs.map((log) => (
                  <tr key={log.id}>
                    <td>{log.last_seen}</td>
                    <td>{log.message}</td>
                  </tr>
                ))}
              </tbody>
            </table>
          </div>
        </div>
      </div>
    </>
  )
}

export default ActivityLog
<commit_msg>Show footer on activity log page.<commit_after>import React, {FunctionComponent} from 'react'

import {getLogs, Log} from '../clients/logs'
import Footer from './Footer'

const ActivityLog: FunctionComponent = () => {
  const [logs, setLogs] = React.useState<Log[]>([])

  function updateLogs() {
    getLogs().then((value) => setLogs(value))
  }

  React.useEffect(updateLogs, [])

  return (
    <>
      <div className="row standalone">
        <div className="standalone">
          <div className="standalone-content">
            <h2>Activity Log</h2>
            <p>
              Here you can see any recent log messages that were generated for
              your account.
            </p>
            <table>
              <thead>
                <tr>
                  <th>Timestamp</th>
                  <th>Message</th>
                </tr>
              </thead>
              <tbody>
                {logs.length === 0 && (
                  <tr>
                    <td colSpan={2}>No log messages found</td>
                  </tr>
                )}
                {logs.map((log) => (
                  <tr key={log.id}>
                    <td>{log.last_seen}</td>
                    <td>{log.message}</td>
                  </tr>
                ))}
              </tbody>
            </table>
          </div>
          <Footer />
        </div>
      </div>
    </>
  )
}

export default ActivityLog

{'fraction_non_alphanumeric': 0.14023732470334413, 'fraction_numerical': 0.002876663070837828, 'mean_word_length': 1.2079365079365079, 'pattern_counts': {'":': 0, '<': 74, '<?xml version=': 0, '>': 80, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6626086', 'n_tokens_mistral': 806, 'n_tokens_neox': 758, 'n_words': 168}