import React from 'react'; import formatter from '../../core/formatter' import BinaryStringView from '../../core/components/BinaryString'; import './IpAddressView.css'; import { IpAddress, OctetNumber } from '../models'; type IpAddressViewProps = { ipAddresses: IpAddress[] }; export class IpAddressView extends React.Component { render() { return {this.props.ipAddresses.map((ip, i) => )}
{ip.toString()} {this.bin(ip.firstByte, 1, ip)}. {this.bin(ip.secondByte, 2, ip)}. {this.bin(ip.thirdByte, 3, ip)}. {this.bin(ip.fourthByte, 4, ip)}
; } bin(value: number, octetNumber: OctetNumber, ip: IpAddress) { return this.onFlippedBit(e.newBinaryString, octetNumber, ip)} />; } onFlippedBit(binaryString: string, number: OctetNumber, ip : IpAddress) { ip.setOctet(number, parseInt(binaryString, 2)); this.forceUpdate(); } }; function fmt(num: number) : string { return formatter.padLeft(formatter.numberToString(num, 'bin'), 8, '0'); } export default IpAddressView;