Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename view and model variables in store to follow convention. #749

Merged
merged 2 commits into from
Jun 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Components/CameraControl.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import {floatStrTrim} from '../utils/strings'
* @return {object} React component
*/
export default function CameraControl() {
const viewer = useStore((state) => state.viewerStore)
const viewer = useStore((state) => state.viewer)
const cameraControls = viewer.IFC.context.ifcCamera.cameraControls
const setCameraControls = useStore((state) => state.setCameraControls)
const location = useLocation()
Expand Down
2 changes: 1 addition & 1 deletion src/Components/CameraControl.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ describe('CameraControl', () => {
const {result} = renderHook(() => useStore((state) => state))
const viewer = __getIfcViewerAPIExtendedMockSingleton()
await act(() => {
result.current.setViewerStore(viewer)
result.current.setViewer(viewer)
})
render(<ShareMock><CameraControl/></ShareMock>)
expect(screen.getByText('Camera')).toBeInTheDocument()
Expand Down
4 changes: 2 additions & 2 deletions src/Components/CutPlaneMenu.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ const PLANE_PREFIX = 'p'
*/
export default function CutPlaneMenu() {
const [anchorEl, setAnchorEl] = useState(null)
const model = useStore((state) => state.modelStore)
const viewer = useStore((state) => state.viewerStore)
const model = useStore((state) => state.model)
const viewer = useStore((state) => state.viewer)
const cutPlanes = useStore((state) => state.cutPlanes)
const addCutPlaneDirection = useStore((state) => state.addCutPlaneDirection)
const removeCutPlaneDirection = useStore((state) => state.removeCutPlaneDirection)
Expand Down
10 changes: 5 additions & 5 deletions src/Components/CutPlaneMenu.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ describe('CutPlaneMenu', () => {
const {result} = renderHook(() => useStore((state) => state))
const viewer = __getIfcViewerAPIExtendedMockSingleton()
await act(() => {
result.current.setViewerStore(viewer)
result.current.setViewer(viewer)
})
fireEvent.click(sectionButton)
const xDirection = getByText('X - Section')
Expand All @@ -57,7 +57,7 @@ describe('CutPlaneMenu', () => {
const {result} = renderHook(() => useStore((state) => state))
const viewer = __getIfcViewerAPIExtendedMockSingleton()
await act(() => {
result.current.setViewerStore(viewer)
result.current.setViewer(viewer)
})
const callCreatePlanes = viewer.clipper.createFromNormalAndCoplanarPoint.mock.calls
expect(callCreatePlanes.length).toBe(1)
Expand All @@ -73,7 +73,7 @@ describe('CutPlaneMenu', () => {
// mock contains one plane
const viewer = __getIfcViewerAPIExtendedMockSingleton()
await act(() => {
result.current.setViewerStore(viewer)
result.current.setViewer(viewer)
})
const shareButton = getByTitle('Share')
fireEvent.click(shareButton)
Expand All @@ -85,8 +85,8 @@ describe('CutPlaneMenu', () => {
const {result} = renderHook(() => useStore((state) => state))
const viewer = __getIfcViewerAPIExtendedMockSingleton()
await act(() => {
result.current.setViewerStore(viewer)
result.current.setModelStore(model)
result.current.setViewer(viewer)
result.current.setModel(model)
})
render(
<ShareMock
Expand Down
4 changes: 2 additions & 2 deletions src/Components/ExtractLevelsMenu.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ import PlanViewIcon from '../assets/icons/PlanView.svg'
export default function ExtractLevelsMenu({listOfOptions, icon, title}) {
const [anchorEl, setAnchorEl] = useState(null)
const [allLevelsState, setAllLevelsState] = useState([])
const model = useStore((state) => state.modelStore)
const viewer = useStore((state) => state.viewer)
const model = useStore((state) => state.model)
const location = useLocation()
const levelInstance = useStore((state) => state.levelInstance)
const setLevelInstance = useStore((state) => state.setLevelInstance)
const setCutPlaneDirections = useStore((state) => state.setCutPlaneDirections)
const viewer = useStore((state) => state.viewerStore)
const theme = useTheme()
const open = Boolean(anchorEl)

Expand Down
2 changes: 1 addition & 1 deletion src/Components/HideToggleButton.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export default function HideToggleButton({elementId}) {
const updateHiddenStatus = useStore((state) => state.updateHiddenStatus)
const isIsolated = useStore((state) => state.isolatedElements[elementId])
const isTempIsolationModeOn = useStore((state) => state.isTempIsolationModeOn)
const viewer = useStore((state) => state.viewerStore)
const viewer = useStore((state) => state.viewer)

const toggleHide = () => {
const toBeHidden = viewer.isolator.flattenChildren(elementId)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/ItemProperties/ItemProperties.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export default function ItemProperties() {
const [propTable, setPropTable] = useState(null)
const [psetsList, setPsetsList] = useState(null)
const [expandAll, setExpandAll] = useState(false)
const model = useStore((state) => state.modelStore)
const model = useStore((state) => state.model)
const element = useStore((state) => state.selectedElement)
const theme = useTheme()

Expand Down
2 changes: 1 addition & 1 deletion src/Components/ItemProperties/ItemProperties.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ test('ItemProperties for single element', async () => {
const {result} = renderHook(() => useStore((state) => state))
await act(() => {
result.current.setSelectedElement({expressID: 10})
result.current.setModelStore(new MockModel)
result.current.setModel(new MockModel)
})

const {getByText} = render(
Expand Down
2 changes: 1 addition & 1 deletion src/Components/NavTree.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ export default function NavTree({
return <TreeItem ContentComponent={CustomContent} {...props}/>
}

const viewer = useStore((state) => state.viewerStore)
const viewer = useStore((state) => state.viewer)

const hasHideIcon = viewer.isolator.canBeHidden(element.expressID)

Expand Down
4 changes: 2 additions & 2 deletions src/Components/NavTree.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ describe('NavTree', () => {
const {result} = renderHook(() => useStore((state) => state))
const viewer = new IfcViewerAPIExtended()
await act(() => {
result.current.setViewerStore(viewer)
result.current.setViewer(viewer)
})
const {getByText} = render(
<ShareMock>
Expand All @@ -49,7 +49,7 @@ describe('NavTree', () => {
const {result} = renderHook(() => useStore((state) => state))
const viewer = new IfcViewerAPIExtended()
await act(() => {
result.current.setViewerStore(viewer)
result.current.setViewer(viewer)
result.current.updateHiddenStatus(1, false)
})
viewer.isolator.canBeHidden.mockReturnValue(true)
Expand Down
4 changes: 2 additions & 2 deletions src/Components/ShareControl.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ function ShareDialog({isDialogDisplayed, setIsDialogDisplayed}) {
const [isCameraInUrl, setIsCameraInUrl] = useState(true)
const [isPlaneInUrl, setIsPlaneInUrl] = useState(false)
const cameraControls = useStore((state) => state.cameraControls)
const viewer = useStore((state) => state.viewerStore)
const model = useStore((state) => state.modelStore)
const viewer = useStore((state) => state.viewer)
const model = useStore((state) => state.model)
const urlTextFieldRef = createRef()
const isPlanesOn = viewer.clipper.planes.length > 0
const rowStyle = {
Expand Down
2 changes: 1 addition & 1 deletion src/Components/ShareControl.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ describe('ShareControl', () => {
})

it('updates the title when the dialog is open', async () => {
const {result} = renderHook(() => useStore((state) => state.setViewerStore))
const {result} = renderHook(() => useStore((state) => state.setViewer))
result.current({
clipper: {
planes: [],
Expand Down
2 changes: 1 addition & 1 deletion src/Components/TypesNavTree.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ describe('TypesNavTree', () => {
const {result} = renderHook(() => useStore((state) => state))
const viewer = new IfcViewerAPIExtended()
await act(() => {
result.current.setViewerStore(viewer)
result.current.setViewer(viewer)
})
const {getByText} = render(
<ShareMock>
Expand Down
5 changes: 2 additions & 3 deletions src/Containers/CadView.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -76,19 +76,19 @@ export default function CadView({
const [model, setModel] = useState(null)
const viewer = useStore((state) => state.viewer)
const setViewer = useStore((state) => state.setViewer)
// setModelStore instead of setModel since there's already a state var with this name
const setModelStore = useStore((state) => state.setModel)
const isNavPanelOpen = useStore((state) => state.isNavPanelOpen)
const isDrawerOpen = useStore((state) => state.isDrawerOpen)
const setCutPlaneDirections = useStore((state) => state.setCutPlaneDirections)
const setIsNavPanelOpen = useStore((state) => state.setIsNavPanelOpen)
const setLevelInstance = useStore((state) => state.setLevelInstance)
const setModelStore = useStore((state) => state.setModelStore)
const setSelectedElement = useStore((state) => state.setSelectedElement)
const setSelectedElements = useStore((state) => state.setSelectedElements)
const setElementTypesMap = useStore((state) => state.setElementTypesMap)
const elementTypesMap = useStore((state) => state.elementTypesMap)
const selectedElements = useStore((state) => state.selectedElements)
const preselectedElementIds = useStore((state) => state.preselectedElementIds)
const setViewerStore = useStore((state) => state.setViewerStore)
const snackMessage = useStore((state) => state.snackMessage)
const accessToken = useStore((state) => state.accessToken)
const sidebarWidth = useStore((state) => state.sidebarWidth)
Expand Down Expand Up @@ -197,7 +197,6 @@ export default function CadView({
pathPrefix,
assertDefined(themeArg.palette.scene.background))
setViewer(initializedViewer)
setViewerStore(initializedViewer)
}
initViewerCb(undefined, theme)
theme.addThemeChangeListener(initViewerCb)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class ModelLoadedEventDispatcher extends ApiEventDispatcher {
*/
initDispatch() {
useStore.subscribe((state, previousState) => {
if (state.modelStore !== previousState.modelStore) {
if (state.model !== previousState.model) {
const eventData = {}
this.apiConnection.send(this.name, eventData)
}
Expand Down
2 changes: 1 addition & 1 deletion src/WidgetApi/event-handlers/HideElementsEventHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class HideElementsEventHandler extends ApiEventHandler {
}
}

useStore.getState().viewerStore.isolator.hideElementsById(expressIds.map((id) => Number(id)))
useStore.getState().viewer.isolator.hideElementsById(expressIds.map((id) => Number(id)))

return this.apiConnection.successfulResponse({})
}
Expand Down
2 changes: 1 addition & 1 deletion src/WidgetApi/event-handlers/SelectElementsEventHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class SelectElementsEventHandler extends ApiEventHandler {
}
}
const toBeSelected = expressIds.map((id) => parseInt(id))
.filter((id) => useStore.getState().viewerStore.isolator.canBePickedInScene(id))
.filter((id) => useStore.getState().viewer.isolator.canBePickedInScene(id))
useStore.setState({selectedElements: toBeSelected})

return this.apiConnection.successfulResponse({})
Expand Down
4 changes: 2 additions & 2 deletions src/WidgetApi/event-handlers/UnhideElementsEventHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class UnhideElementsEventHandler extends ApiEventHandler {
}

if (data.globalIds === '*') {
useStore.getState().viewerStore.isolator.unHideAllElements()
useStore.getState().viewer.isolator.unHideAllElements()
} else {
const expressIds = []
if (data.globalIds.length) {
Expand All @@ -48,7 +48,7 @@ class UnhideElementsEventHandler extends ApiEventHandler {
}
}

useStore.getState().viewerStore.isolator.unHideElementsById(expressIds.map((id) => Number(id)))
useStore.getState().viewer.isolator.unHideElementsById(expressIds.map((id) => Number(id)))
}

return this.apiConnection.successfulResponse({})
Expand Down
8 changes: 4 additions & 4 deletions src/store/IFCSlice.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@
*/
export default function createIFCSlice(set, get) {
return {
viewerStore: {},
viewer: {},
model: null,
modelPath: null,
modelStore: null,
selectedElement: null,
selectedElements: [],
elementTypesMap: [],
preselectedElementIds: null,
cameraControls: null,
loadedFileInfo: null,
setViewerStore: (viewer) => set(() => ({viewerStore: viewer})),
setViewer: (viewer) => set(() => ({viewer: viewer})),
setModel: (model) => set(() => ({model: model})),
setModelPath: (modelPath) => set(() => ({modelPath: modelPath})),
setModelStore: (model) => set(() => ({modelStore: model})),
setSelectedElement: (element) => set(() => ({selectedElement: element})),
setSelectedElements: (elements) => set(() => ({selectedElements: elements})),
setElementTypesMap: (map) => set(() => ({elementTypesMap: map})),
Expand Down
24 changes: 10 additions & 14 deletions src/store/useStore.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@ describe('UI slice', () => {
})
expect(result.current.snackMessage).toEqual(['loading'])
})
})

describe('UI slice', () => {

it('Set Drawer State', () => {
const {result} = renderHook(() => useStore((state) => state))
act(() => {
Expand All @@ -22,6 +21,7 @@ describe('UI slice', () => {
})
})


describe('IFC slice', () => {
it('select an IFC element', () => {
const {result} = renderHook(() => useStore((state) => state))
Expand All @@ -39,28 +39,24 @@ describe('IFC slice', () => {
},
})
})
})

describe('IFC slice', () => {

it('set IFC model', () => {
const {result} = renderHook(() => useStore((state) => state))
const model = {castShadow: false}
act(() => {
result.current.setModelStore({castShadow: false})
result.current.setModel(model)
})
expect(result.current.modelStore).toEqual(
{castShadow: false},
)
expect(result.current.model).toEqual(model)
})
})

describe('IFC slice', () => {

it('set IFC viewer', () => {
const {result} = renderHook(() => useStore((state) => state))
const viewer = {GLTF: {GLTFModels: {}}}
act(() => {
result.current.setViewerStore({GLTF: {GLTFModels: {}}})
result.current.setViewer(viewer)
})
expect(result.current.viewerStore).toEqual(
{GLTF: {GLTFModels: {}}},
)
expect(result.current.viewer).toEqual(viewer)
})
})