in src/App.js [21:134]
function App (props) {
const [recordsData, setRecordsData] = useState(null)
const [activeRecord, setActiveRecord] = useState(null)
const [isSearching, setIsSearching] = useState(false)
const [user, setUser] = useState(null)
const executeSearch = (evt) => {
console.log(evt)
getRecordings(evt)
}
useEffect(() => {
async function authUser() {
Hub.listen("auth", ({ payload: { event, data } }) => {
switch (event) {
case "signIn":
setUser(data)
console.log('Logon event')
break;
case "signOut":
setUser(null)
console.log('Logout event')
break;
case "customOAuthState":
break;
default:
console.log('Auth fall-through')
}
});
await Auth.currentAuthenticatedUser()
.then(user => {
setUser(user)
if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
console.log(user)
}
})
.catch(() => {
if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
console.log("Not signed in")
}
// look for code in URL
const _qs = qs.parse(props.location.search)
if (!_qs['code']) {
Auth.federatedSignIn({provider: 'callrecordingidp'})
}
});
}
authUser()
},[props.location.search]);
const setActiveRecording = (evt) => {
var _activeRecord = recordsData.filter(
function(data) { return data.sessionId === evt}
)
console.log("Active record: ", _activeRecord)
if (_activeRecord !== undefined && _activeRecord.length === 1) {
setActiveRecord(_activeRecord[0])
}
}
const getRecordings = async (evt) => {
if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
console.log("Getting recordings: ", evt)
}
setIsSearching(true)
var apiQS = (evt.pn) ?
{queryStringParameters: {pn: evt.pn, d1: evt.d1, d2: evt.d2}} :
(evt.acct) ? {queryStringParameters: {acct: evt.acct, d1: evt.d1, d2: evt.d2}} :
(evt.session) ? {queryStringParameters: {session: evt.session, d1: evt.d1, d2: evt.d2}} :
(evt.recent === "") ? {queryStringParameters: {recent: 1, d1: evt.d1, d2: evt.d2}} :
''
const response = await API.get('connectapi', '/recordings', apiQS);
console.log(JSON.stringify(response, null, 2));
setRecordsData(response)
setIsSearching(false)
}
if (user != null) {
return (
<div style={styles}>
<TopMenu />
<Grid columns={2} divided>
<Grid.Column width={11}>
<Container style={{ padding: '2em 2em' }}>
<Header as='h1'>Contact Search</Header>
<SearchForm onSearch={(e) => executeSearch(e)}
clearRecord={() => setActiveRecord({})}/>
<Divider></Divider>
<SearchTable searchResults={recordsData}
isSearching={isSearching}
onActiveRecord={(e) => setActiveRecording(e)}/>
</Container>
</Grid.Column>
<Grid.Column floated='right' width={5}>
<Container style={{ padding: '2em 0em' }}>
<Header as='h1'>Details</Header>
<RecordDetails activeRecord={activeRecord}/>
</Container>
</Grid.Column>
</Grid>
</div>
)
}