{"version":3,"sources":["components/actions/noteActions.js","components/functional/NoteComponent.js","components/Panels/ListPanel.js","util/SearchUtils.js","components/Panels/SearchPanel.js","components/temp_taginput.js","components/functional/InfoTooltip.js","components/Panels/AddPanel.js","components/Panels/AboutPanel.js","components/Panels/PagePanel.js","components/AntNav.js","App.js","reportWebVitals.js","components/reducers/noteReducer.js","index.js"],"names":["ADD_NOTE","PUT_NOTE","DEL_NOTE","SET_SEARCH","addNote","note","type","setSearch","search","NoteComponent","formRef","React","createRef","noteClick","console","log","props","history","push","uuid","onSearch","searchTxt","lastSearch","current","setFieldsValue","searchbar","tagsList","this","tags","map","tag","onClick","e","onTagClick","displayText","body","length","slice","className","title","noteClicked","style","Component","withRouter","connect","state","notes","dispatch","TabPane","Tabs","ListPanel","getNotesList","getTagsList","allTags","width","display","dataSource","renderItem","item","Item","hoverable","size","bordered","padding","margin","defaultActiveKey","centered","tab","noteSuggestions","titleTokensCurr","toLowerCase","trim","split","cnt","temp","f","titleTokensCmp","indexOf","filter","sort","a","b","Search","Input","SearchPanel","tRef","searchStr","notesList","tokens","searchFilter","stopPropagation","forceUpdate","ref","node","container","target","initialValues","name","placeholder","allowClear","Tagger","inputVisible","inputValue","editInputIndex","editInputValue","closeTag","removedTag","setState","showInput","input","focus","handleInputChange","value","handleInputConfirm","add","saveInputRef","onFinish","values","List","rules","validator","_","Promise","reject","Error","fields","remove","errors","field","disabled","closable","onClose","key","onChange","onBlur","onPressEnter","PlusOutlined","ErrorList","InfoTooltip","text","QuestionCircleOutlined","TextArea","AddPanel","selectedNote","updatePage","pageid","match","params","currentNote","pg","mergeRef","handleClick","resetWarning","Modal","confirm","content","icon","ExclamationCircleOutlined","onOk","resetForm","onCancel","goBackWarning","possibleNotes","getFieldsValue","noteObj","sameTitle","sameTags","sameBody","contents","undoMerge","onSubmit","newNote","putNote","onMerge","delNote","resetFields","getTooltipTitle","getContentsTitle","window","open","getOtherTitle","getOtherView","layout","label","required","message","htmlType","danger","getDeleteButton","shape","DeleteOutlined","titleTxt","currText","initVals","extra","gutter","span","bodyStyle","height","onValuesChange","readOnly","AboutPanel","renderers","code","language","vs","children","PagePanel","getEditButton","EditOutlined","getSimilarNotes","getPageHeader","onBack","goBack","subTitle","overflow","flex","Sider","Layout","AntNav","collapsed","onCollapse","url","location","pathname","prevProps","prevState","initialKey","theme","collapsible","position","left","selectedKeys","mode","SearchOutlined","to","MenuOutlined","SettingOutlined","Content","Footer","App","minHeight","exact","path","render","component","textAlign","bottom","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","initState","noteReducer","action","i","store","createStore","ReactDOM","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.8024d142.chunk.js","sourcesContent":["export const ADD_NOTE = 'ADD_NOTE'; //FIXME: DO BETTER?\r\nexport const PUT_NOTE = 'PUT_NOTE'; //FIXME: DO BETTER?\r\nexport const DEL_NOTE = 'DEL_NOTE';\r\nexport const SET_SEARCH = 'SET_SEARCH'; //FIXME: DO BETTER?\r\n\r\n\r\n\r\n//FIXME: RENAME\r\nexport const addNote = (note) => {\r\n return {\r\n type: ADD_NOTE,\r\n note\r\n }\r\n}\r\n\r\nexport const putNote = (note) => {\r\n return {\r\n type: PUT_NOTE,\r\n note\r\n }\r\n}\r\n\r\nexport const delNote = (uuid) => {\r\n return {\r\n type: DEL_NOTE,\r\n uuid\r\n }\r\n}\r\n\r\n\r\nexport const setSearch = (search) => {\r\n return {\r\n type: SET_SEARCH,\r\n search\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { setSearch } from '../actions/noteActions'\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nimport { Card, Tag } from 'antd';\r\n\r\nimport ReactMarkdown from 'react-markdown'\r\n\r\n\r\n\r\n//FIXME: REVIEW!\r\nconst mapStateToProps = (state) => {\r\n console.log(state);\r\n return {\r\n notes: state.notes,\r\n lastSearch: state.lastSearch\r\n //searchStr: \"\"\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\r\n return{\r\n setSearch: (search) => { dispatch(setSearch(search)) } //FIXME: DO BETTER, RENAME\r\n }\r\n}\r\n\r\n\r\nclass NoteComponent extends Component {\r\n\r\n //FIXME: ADD TAG SEARCHING\r\n //state = {searchStr: \"\"}\r\n formRef = React.createRef(); //Used to create a ref so that we can set the value of our search bar.\r\n\r\n noteClick = (note) => {\r\n console.log(note);\r\n this.props.history.push(`/page/${note.uuid}`);\r\n }\r\n\r\n //FIXME: REVIEW\r\n onSearch = (searchTxt) => {\r\n\r\n this.props.setSearch(searchTxt);\r\n this.props = {\r\n ...this.props,\r\n lastSearch: searchTxt\r\n }\r\n this.formRef.current.setFieldsValue({searchbar : searchTxt});\r\n }\r\n\r\n //FIXME: MAKE TAG SEARCH WORK\r\n render() {\r\n\r\n\r\n\r\n let tagsList = this.props.note.tags.map(tag=>{\r\n return (\r\n {\r\n //this.onSearch(tag); //FIXME: ENABLE\r\n //e.stopPropagation();\r\n //this.forceUpdate(); //Re-render\r\n this.props.onTagClick(e, tag);\r\n }}>\r\n {tag}\r\n \r\n )\r\n })\r\n\r\n/*\r\n return (\r\n
\r\n

np

\r\n
\r\n {tagsList}\r\n
\r\n
\r\n )\r\n */\r\n\r\n //FIXME: DEAL WITH MULTI LINE, B/C MD LOCK HEIGHT BETTER? (TWO ISSUES HERE)\r\n let displayText = (this.props.note.body.length > 100) ? this.props.note.body.slice(0, 100) + '...' : this.props.note.body;\r\n //FIXME:DO BETTER\r\n return (\r\n {\r\n //this.noteClick(note) //FIXME: ENABLE\r\n this.props.noteClicked(this.props.note);\r\n } }>\r\n
{tagsList}
\r\n {displayText}\r\n
\r\n )\r\n \r\n }\r\n}\r\n\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(NoteComponent)); //FIXME: REVIEW!\r\n","import React from 'react';\r\nimport { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { addNote, setSearch } from '../actions/noteActions'\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nimport { Tabs, List, Card } from 'antd';\r\n\r\nimport NoteComponent from '../functional/NoteComponent'\r\n\r\n\r\nconst { TabPane } = Tabs;\r\n\r\n\r\n\r\n//FIXME: REVIEW!\r\nconst mapStateToProps = (state) => {\r\n return {\r\n notes: state.notes\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps= (dispatch)=>{\r\n\r\n return{\r\n addNote: (note) => { dispatch(addNote(note)) }, //FIXME: DO BETTER, RENAME, REM\r\n setSearch: (search) => { dispatch(setSearch(search)) } //FIXME: DO BETTER, RENAME\r\n }\r\n}\r\n\r\n//FIXME: MAKE TABS STICKY https://ant.design/components/tabs/\r\n//https://stackoverflow.com/questions/59114027/how-to-remove-duplicates-from-array-in-react-native\r\nclass ListPanel extends Component {\r\n\r\n //FIXME: ADD TAG CLICK/SEARCH?\r\n\r\n noteClick = (note) => {\r\n //this.props.addNote(note); //FIXME: CHANGE\r\n this.props.history.push(`/page/${note.uuid}`);\r\n }\r\n\r\n getNotesList = () => {\r\n let notesList = this.props.notes.map(note=>{\r\n\r\n return (\r\n {\r\n\r\n }}\r\n noteClicked={(note) => {\r\n this.noteClick(note);\r\n }} />\r\n )\r\n })\r\n return notesList;\r\n }\r\n\r\n getTagsList = () => {\r\n /*\r\n let allTags = this.props.notes.map(note=>{\r\n\r\n })\r\n */\r\n let allTags = [];\r\n\r\n for(let note of this.props.notes)\r\n {\r\n allTags = [\r\n ...allTags,\r\n ...note.tags\r\n ]\r\n }\r\n // console.log('at', allTags);\r\n //FIXME: DO BETTER TAG SEARCH EVENTUALLY (EG tag:)\r\n return (\r\n \r\n (\r\n \r\n {\r\n this.props.setSearch(item);\r\n this.props.history.push(`/`); //Set to search page\r\n }}>\r\n {item}\r\n \r\n \r\n )}>\r\n \r\n \r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this.getNotesList()}\r\n \r\n \r\n {this.getTagsList()}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ListPanel)); //FIXME: REVIEW!\r\n","\r\n\r\nexport const searchFilter = (notes, searchStr) => {\r\n\r\n/*\r\n return notes.filter(note=>{\r\n if(searchStr===\"\") //Empty search\r\n return true;\r\n return note.title.indexOf(searchStr) > -1; //FIXME: DO BETTER\r\n })\r\n*/\r\n\r\n if(searchStr===\"\")//Empty Search\r\n return notes;\r\n\r\n //FIXME: DO BETTER SEARCH\r\n let tokens = searchStr.toLowerCase().trim().split(\" \");\r\n\r\n return notes.map(note => {\r\n\r\n let cnt = 0;\r\n\r\n if(tokens.length < note.tags.length)\r\n {\r\n for(let temp of tokens)\r\n for(let tag of note.tags)\r\n if(tag.toLowerCase() === temp)\r\n //if(note.tags.indexOf(temp) !== -1)\r\n cnt++;\r\n }\r\n else\r\n {\r\n for(let temp of note.tags)\r\n if(tokens.indexOf(temp.toLowerCase()) !== -1)\r\n cnt++;\r\n }\r\n\r\n\r\n //FIXME: DO BETTER\r\n let titleTokensCmp = note.title.toLowerCase().split(\" \");\r\n\r\n if(tokens.length < titleTokensCmp.length)\r\n {\r\n for(let temp of tokens)\r\n if(titleTokensCmp.indexOf(temp) !== -1)\r\n {\r\n cnt += 0.5\r\n }\r\n }\r\n else\r\n {\r\n for(let temp of titleTokensCmp)\r\n if(tokens.indexOf(temp) !== -1)\r\n cnt += 0.5\r\n }\r\n\r\n // console.log(\"HELLO?\");\r\n // console.log(note.title, cnt);\r\n note.cnt = cnt;\r\n return note;\r\n }).filter(note => {\r\n return note.cnt !== 0\r\n }).sort((a, b) => {\r\n return - a.cnt + b.cnt; //FIXME: VERIFY ORDER\r\n }).filter(note => {\r\n delete note.cnt;\r\n return note;\r\n })\r\n\r\n\r\n\r\n}\r\n\r\n//FIXME: BETTER NAME\r\n/**\r\n * Gets a list of notes based off of a search\r\n * @param {[type]} notes The list of notes (object array)\r\n * @param {[type]} title The title of the current note (string)\r\n * @param {[type]} tags The array of tags of the current note\r\n * @param {[type]} uuid Optional: The uuid of the current note, so that it can be excluded from the list\r\n * @return {[type]} A list of possible similar notes\r\n */\r\nexport const noteSuggestions = (notes, title, tags, uuid) => {\r\n\r\n //console.log('nst: ', tags);\r\n // console.log('n', notes, title, tags, uuid)\r\n if(title == null && tags == null)\r\n return notes;\r\n\r\n let titleTokensCurr = (title != null) ? title.toLowerCase().trim().split(\" \") : [];\r\n // console.log(titleTokensCurr);\r\n // if(tags == null || tags.length === 0) //FIXME: IMPLEMENT TITLE< DO BETTER\r\n // return notes;\r\n\r\n return notes.map(note => {\r\n\r\n let cnt = 0;\r\n\r\n if(tags != null)\r\n {\r\n if(tags.length < note.tags.length)\r\n {\r\n for(let temp of tags)\r\n for(let tag of note.tags)\r\n if(tag.toLowerCase() === temp.toLowerCase())// if(note.tags.indexOf(temp) !== -1)\r\n cnt++;\r\n }\r\n else\r\n {\r\n for(let temp of note.tags)\r\n for(let tag of tags)\r\n if(tag.toLowerCase() === temp.toLowerCase())//if(tags.indexOf(temp.toLowerCase()) !== -1)\r\n cnt++;\r\n }\r\n }\r\n\r\n //FIXME: DO BETTER\r\n let titleTokensCmp = note.title.toLowerCase().split(\" \");\r\n\r\n if(titleTokensCurr.length < titleTokensCmp.length)\r\n {\r\n for(let temp of titleTokensCurr)\r\n if(titleTokensCmp.indexOf(temp) !== -1)\r\n {\r\n // console.log(temp, 'is in');\r\n cnt += 0.5\r\n }\r\n }\r\n else\r\n {\r\n for(let temp of titleTokensCmp)\r\n if(titleTokensCurr.indexOf(temp) !== -1)\r\n cnt += 0.5\r\n }\r\n\r\n // console.log(\"HELLO?\");\r\n // console.log(note.title, cnt);\r\n note.cnt = cnt;\r\n return note;\r\n }).filter(note => {\r\n return note.cnt !== 0 && (uuid == null || note.uuid !== uuid);\r\n }).sort((a, b) => {\r\n return - a.cnt + b.cnt; //FIXME: VERIFY ORDER\r\n }).filter(note => {\r\n delete note.cnt;\r\n return note;\r\n }) //FIXME: HEAP?\r\n /*\r\n return notes.filter(note=>{\r\n if(title == null && tags == null)\r\n return true;\r\n\r\n //FIXME: IMPLEMENT TITLE\r\n if(tags == null)\r\n return true;\r\n\r\n\r\n // if(searchStr===\"\") //Empty search\r\n return true;\r\n // return note.title.indexOf(searchStr) > -1; //FIXME: DO BETTER\r\n })\r\n */\r\n\r\n}\r\n","import React from 'react';\r\nimport { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { setSearch } from '../actions/noteActions'\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nimport { Input, Form, Affix } from 'antd';\r\n\r\n\r\nimport NoteComponent from '../functional/NoteComponent'\r\n\r\nimport {searchFilter} from '../../util/SearchUtils';\r\n\r\nconst { Search } = Input;\r\n\r\n\r\n//FIXME: REVIEW!\r\nconst mapStateToProps = (state) => {\r\n // console.log('search state', state);\r\n return {\r\n notes: state.notes,\r\n lastSearch: state.lastSearch\r\n //searchStr: \"\"\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\r\n return{\r\n setSearch: (search) => { dispatch(setSearch(search)) } //FIXME: DO BETTER, RENAME\r\n }\r\n}\r\n\r\n//Affix Reference: https://gary-shen.github.io/ant-design/components/affix/\r\n\r\nclass SearchPanel extends Component {\r\n\r\n //FIXME: ADD TAG SEARCHING\r\n //state = {searchStr: \"\"}\r\n formRef = React.createRef(); //Used to create a ref so that we can set the value of our search bar.\r\n\r\n tRef = React.createRef(); //FIXME: REM?\r\n\r\n noteClick = (note) => {\r\n // console.log(note);\r\n this.props.history.push(`/page/${note.uuid}`);\r\n }\r\n\r\n //FIXME: REVIEW\r\n onSearch = (searchTxt) => {\r\n\r\n this.props.setSearch(searchTxt);\r\n this.props = {\r\n ...this.props,\r\n lastSearch: searchTxt\r\n }\r\n this.formRef.current.setFieldsValue({searchbar : searchTxt});\r\n }\r\n\r\n\r\n\r\n\r\n render() {\r\n\r\n let searchStr = this.props.lastSearch;\r\n\r\n let notesList = searchFilter(this.props.notes, searchStr).map(note=>{\r\n return (\r\n {\r\n this.onSearch(tag);\r\n e.stopPropagation();\r\n this.forceUpdate(); //Re-render\r\n }}\r\n noteClicked={(note) => {\r\n this.noteClick(note);\r\n }} />\r\n )\r\n })\r\n //PLAN: MAKE ON CHANGE?\r\n //FIXME: MAKE SEARCH BAR ON TOP\r\n return (\r\n
{ this.container = node; }} style={{'overflow-y':'auto', 'margin-right':'-16px', 'margin-left':'-16px'}}>\r\n\r\n this.container}>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {notesList}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SearchPanel)); //FIXME: REVIEW!\r\n","import React from 'react';\r\nimport { Form, Input, Tag, Tooltip } from 'antd';\r\nimport { MinusCircleOutlined, PlusOutlined } from '@ant-design/icons';\r\nimport '../App.less';\r\n//FIXME: ADD BTN DOESNT APPEAR CLICKABLE\r\n\r\n//FIXME: https://ant.design/components/tag/\r\nclass Tagger extends React.Component {\r\n\r\n state = {\r\n tags: [],\r\n inputVisible: false,\r\n inputValue: '',\r\n editInputIndex: -1,\r\n editInputValue: '',\r\n };\r\n\r\n constructor(props)\r\n {\r\n super(props);\r\n\r\n if(props.tags != null)\r\n {\r\n this.state = {\r\n ...this.state,\r\n tags: this.props.tags\r\n }\r\n\r\n }\r\n }\r\n\r\n closeTag = removedTag => {\r\n const tags = this.state.tags.filter(tag => tag !== removedTag);\r\n this.setState({ tags });\r\n };\r\n\r\n showInput = () => {\r\n this.setState({ inputVisible: true }, () => this.input.focus());\r\n };\r\n\r\n handleInputChange = e => {\r\n this.setState({ inputValue: e.target.value });\r\n };\r\n\r\n handleInputConfirm = (add) => {\r\n const { inputValue } = this.state;\r\n let { tags } = this.state;\r\n\r\n if (inputValue && tags.indexOf(inputValue) === -1) {\r\n tags = [...tags, inputValue];\r\n if(add != null)\r\n add(inputValue);\r\n }\r\n\r\n this.setState({\r\n tags,\r\n inputVisible: false,\r\n inputValue: '',\r\n });\r\n };\r\n\r\n saveInputRef = input => {\r\n this.input = input;\r\n };\r\n\r\n onFinish = values => {\r\n console.log('Received values of form:', values);\r\n };\r\n\r\n\r\n render() {\r\n const { tags, inputVisible, inputValue, editInputIndex, editInputValue } = this.state;\r\n return (\r\n {\r\n console.log('v and tags', tags);\r\n if (!tags || tags.length < 1) {\r\n return Promise.reject(new Error('Please add at least one tag.'));\r\n }\r\n },\r\n },\r\n ]}\r\n >\r\n {(fields, { add, remove }, { errors }) => (\r\n <>\r\n \r\n {fields.map(field => (\r\n {\r\n this.closeTag(this.state.tags[field.name]);\r\n remove(field.name)\r\n }}>\r\n {this.state.tags[field.name]}\r\n\r\n \r\n\r\n ))}\r\n\r\n {(inputVisible && !this.props.disabled) && (\r\n {\r\n this.handleInputConfirm(add);\r\n }}\r\n onPressEnter={() => {\r\n this.handleInputConfirm(add);\r\n }}\r\n />\r\n )}\r\n {(!inputVisible && !this.props.disabled) && (\r\n {this.showInput()}}>\r\n New Tag\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n )}\r\n};\r\n\r\nexport default Tagger; //FIXME: REVIEW!\r\n","import React from 'react';\r\nimport { Component } from 'react';\r\n\r\nimport { Tooltip } from 'antd';\r\nimport { QuestionCircleOutlined } from '@ant-design/icons';\r\n\r\n//FIXME: BETTER NAME\r\nclass InfoTooltip extends Component {\r\n\r\n\r\n render() {\r\n\r\n return (\r\n {\r\n if(this.props.onClick != null)\r\n this.props.onClick(e)\r\n }}>\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default InfoTooltip;\r\n","import React from 'react';\r\nimport uuid from 'react-uuid'\r\nimport { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { addNote, putNote, delNote } from '../actions/noteActions'\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nimport { Card, Row, Col, Form, Input, Button, List, Modal, Tooltip } from 'antd';\r\n\r\nimport { ExclamationCircleOutlined, DeleteOutlined } from '@ant-design/icons';\r\n\r\nimport Tagger from '../temp_taginput'\r\n\r\nimport InfoTooltip from '../functional/InfoTooltip'\r\n\r\nimport {noteSuggestions} from '../../util/SearchUtils';\r\n\r\nconst { TextArea } = Input;\r\n\r\n\r\n//FIXME: REVIEW!\r\nconst mapStateToProps = (state) => {\r\n return {\r\n notes: state.notes\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps= (dispatch)=>{\r\n\r\n return{\r\n addNote: (note) => { dispatch(addNote(note)) }, //FIXME: DO BETTER, RENAME\r\n putNote: (note) => { dispatch(putNote(note)) },\r\n delNote: (uuid) => { dispatch(delNote(uuid)) },\r\n }\r\n}\r\n\r\nclass AddPanel extends Component {\r\n\r\n//FIXME: REMOVE\r\n state = {selectedNote: null}\r\n\r\n constructor(props) {\r\n super(props);\r\n this.updatePage(); //Get the page id if there is one\r\n }\r\n\r\n //Used to set the page to correspond to the URL. Modified from PagePanel\r\n updatePage = () => {\r\n\r\n this.pageid = this.props.match.params.pageid;\r\n\r\n if(this.currentNote != null && this.pageid == null) //We just switched\r\n {\r\n this.currentNote = null;\r\n this.formRef.current = null;\r\n }\r\n if(this.pageid == null)\r\n {\r\n //this.currentNote = null; //CLear the page (in part for our list of similar)\r\n //this.formRef.current = null; //Clear the form data?\r\n return;\r\n }\r\n\r\n for(let pg of this.props.notes)\r\n if(this.pageid === pg.uuid) //FIXME: USE THIS SORT OF THING MORE\r\n {\r\n this.currentNote = pg;\r\n break;\r\n }\r\n console.log(this.currentNote);\r\n }\r\n\r\n/*\r\n showWarning = () => {\r\n this.setState({\r\n warningvisible : true,\r\n });\r\n }\r\n\r\n closeWarning = () => {\r\n this.setState({\r\n warningvisible : false,\r\n });\r\n }\r\n */\r\n\r\n formRef = React.createRef();\r\n mergeRef = React.createRef();\r\n\r\n //FIXME: REVIEW\r\n handleClick = (note) => {\r\n this.props.addNote(note); //FIXME: CHANGE\r\n }\r\n\r\n resetWarning = () => {\r\n Modal.confirm({\r\n title: 'Confirm reset',\r\n content: 'If you reset now, the current note will not be saved.',\r\n icon: ,\r\n onOk: () => {this.resetForm();},\r\n onCancel: () => {}\r\n });\r\n }\r\n\r\n goBackWarning = () => {\r\n\r\n let possibleNotes = this.props.notes.filter(note => {\r\n return note.uuid === this.state.selectedNote.uuid; //FIXME: DO BETTER, STORE ORIG?\r\n })\r\n\r\n console.log('pn', possibleNotes);\r\n console.log('fd', this.mergeRef.current.getFieldsValue());\r\n console.log(possibleNotes[0]);\r\n\r\n\r\n let noteObj = this.mergeRef.current.getFieldsValue();\r\n\r\n // console.log(noteObj);\r\n\r\n // console.log(possibleNotes[0] === noteObj);\r\n let sameTitle = possibleNotes[0].title === noteObj.title;\r\n let sameTags = possibleNotes[0].tags === noteObj.tags;\r\n let sameBody = possibleNotes[0].body === noteObj.contents; //FIXME: RENAME TO BODY\r\n\r\n console.log(possibleNotes.length !== 1, !sameTitle, !sameTags, !sameBody);\r\n\r\n if(possibleNotes.length === 1 && sameTitle && sameTags && sameBody)\r\n {\r\n this.undoMerge();\r\n }\r\n else\r\n Modal.confirm({\r\n title: 'Confirm revert',\r\n content: 'If you go back now, any changes to the existing note will be deleted.',\r\n icon: ,\r\n onOk: () => {this.undoMerge(); },\r\n onCancel: () => {}\r\n });\r\n }\r\n\r\n //FIXME: CHANGE LINK TO BE THIS PAGE? https://www.markdownguide.org/basic-syntax/\r\n onSubmit = values => {\r\n let tags = []; //FIXME: EDIT TAGS TO MAKE THIS NOT HAPPEN?\r\n\r\n for(let temp of values.tags) //FIXME: REMOVE\r\n {\r\n // console.log('temp',temp);\r\n tags.push(temp);\r\n }\r\n\r\n let newNote = {\r\n title: values.title,\r\n tags: tags,\r\n body: values.contents,\r\n uuid: ((this.currentNote == null) ? uuid() : this.currentNote.uuid)\r\n }\r\n\r\n if(this.currentNote == null)\r\n this.props.addNote(newNote);\r\n else\r\n this.props.putNote(newNote);\r\n\r\n this.props.history.push(`/page/${newNote.uuid}`);\r\n };\r\n\r\n onMerge = values => {\r\n // console.log(\"hey?\", values);\r\n let tags = []; //FIXME: EDIT TAGS TO MAKE THIS NOT HAPPEN?\r\n\r\n for(let temp of values.tags) //FIXME: REMOVE\r\n {\r\n // console.log('temp',temp);\r\n tags.push(temp);\r\n }\r\n\r\n let newNote = {\r\n title: values.title,\r\n tags: tags,\r\n body: values.contents,\r\n uuid: this.state.selectedNote.uuid\r\n }\r\n\r\n this.props.putNote(newNote);\r\n\r\n if(this.currentNote != null) //we were editing a note\r\n this.props.delNote(this.currentNote.uuid);\r\n\r\n this.props.history.push(`/page/${newNote.uuid}`);\r\n };\r\n\r\n //FIXME: SHOW WARNING. https://ant.design/components/modal/\r\n resetForm = () => {\r\n this.formRef.current.resetFields();\r\n }\r\n undoMerge = () => {\r\n this.setState({selectedNote: null});\r\n }\r\n\r\n //FIXME: RENAME, DO BETTER\r\n getTooltipTitle = () => {\r\n return (\r\n
\r\n Similar Notes \r\n
\r\n )\r\n }\r\n\r\n getContentsTitle = () =>{\r\n return (\r\n
\r\n Contents {window.open(\"https://commonmark.org/help/\")}}/>\r\n
\r\n )\r\n }\r\n //FIXME: RENAME, DO BETTER\r\n getOtherTitle = () => {\r\n if(this.state.selectedNote == null)\r\n return this.getTooltipTitle();\r\n else\r\n return (\r\n \"Existing Note\"\r\n )\r\n\r\n }\r\n //FIXME: DO BETTER, RENAME\r\n //FIXME: FIX HEADERS (EG SIMILAR NOTES) AND ALLOW REST TO SCROLL\r\n //FIXME: ADD TOOLTIP WHEN DISABLED\r\n getOtherView = () => {\r\n\r\n //FIXME: THIS DOESNT UPDATE\r\n //Maybe use these? {}} />\r\n if(this.state.selectedNote == null)\r\n {\r\n //FIXME: REFACTOR\r\n let tags = (this.formRef.current == null) ? ((this.currentNote == null) ? null : this.currentNote.tags) : this.formRef.current.getFieldsValue().tags;\r\n let title = (this.formRef.current == null) ? ((this.currentNote == null) ? null : this.currentNote.title) : this.formRef.current.getFieldsValue().title;\r\n\r\n //Key to make it re-render when we switch from edit to add FIXME: DO BETTER\r\n return (\r\n <>\r\n (\r\n \r\n {\r\n this.setState({selectedNote:item});\r\n //console.log('sn', item);\r\n }}>\r\n {item.title}\r\n \r\n \r\n )}>\r\n \r\n \r\n )\r\n }\r\n else\r\n {\r\n\r\n //if(this.formRef.current != null)\r\n // console.log('fr', this.formRef.current.getFieldsValue());\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n