import React from 'react'; import classNames from 'classnames'; import PropTypes from 'prop-types'; import getHintElement from './getHintElement'; import { DEFAULT_SHORT_DATE_FORMAT_OPTIONS, LONG_TIME_FORMAT, SCHEME_TO_PROTOCOL_MAP, } from '../../../helpers/constants'; import { captitalizeWords, formatDateTime, formatTime } from '../../../helpers/helpers'; import { getSourceData } from '../../../helpers/trackers/trackers'; const getDomainCell = (props) => { const { row, t, isDetailed, dnssec_enabled, } = props; const { tracker, type, answer_dnssec, client_proto, domain, time, } = row.original; const hasTracker = !!tracker; const lockIconClass = classNames('icons', 'icon--small', 'd-none', 'd-sm-block', 'cursor--pointer', { 'icon--active': answer_dnssec, 'icon--disabled': !answer_dnssec, 'my-3': isDetailed, }); const privacyIconClass = classNames('icons', 'mx-2', 'icon--small', 'd-none', 'd-sm-block', 'cursor--pointer', { 'icon--active': hasTracker, 'icon--disabled': !hasTracker, 'my-3': isDetailed, }); const protocol = t(SCHEME_TO_PROTOCOL_MAP[client_proto]) || ''; const ip = type ? `${t('type_table_header')}: ${type}` : ''; const requestDetailsObj = { time_table_header: formatTime(time, LONG_TIME_FORMAT), date: formatDateTime(time, DEFAULT_SHORT_DATE_FORMAT_OPTIONS), domain, type_table_header: type, protocol, }; const sourceData = getSourceData(tracker); const knownTrackerDataObj = { name_table_header: tracker?.name, category_label: hasTracker && captitalizeWords(tracker.category), source_label: sourceData && {sourceData.name}, }; const renderGrid = (content, idx) => { const preparedContent = typeof content === 'string' ? t(content) : content; const className = classNames('text-truncate key-colon o-hidden', { 'overflow-break': preparedContent.length > 100, }); return