diff --git a/app/components/assignment/AssignedRolesSearch.tsx b/app/components/assignment/AssignedRolesSearch.tsx deleted file mode 100644 index 4834728..0000000 --- a/app/components/assignment/AssignedRolesSearch.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import {Search} from "@navikt/ds-react"; -import React, {useState} from "react"; -import {Form, useParams, useSubmit} from "@remix-run/react"; - -export const AssignedRolesSearch = () => { - - const submit = useSubmit(); - const [searchString, setSearchString] = useState("") - const params = useParams(); - - return ( -
{ - submit({search: searchString}, {method: "GET", action: `/resources/${params.id}/role-assignments`}) - event.preventDefault() - }}> - setSearchString(event)} - onClear={event => { - submit({search: ""}, {method: "GET", action: `/resources/${params.id}/role-assignments`}) - }} - /> - - ); -}; \ No newline at end of file diff --git a/app/components/assignment/AssignedUsersSearch.tsx b/app/components/assignment/AssignedUsersSearch.tsx deleted file mode 100644 index b620f73..0000000 --- a/app/components/assignment/AssignedUsersSearch.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import {Search} from "@navikt/ds-react"; -import React, {useState} from "react"; -import {Form, useParams, useSearchParams, useSubmit} from "@remix-run/react"; -import {handleClearSearchFieldString, handleSearchFieldString} from "~/components/common/CommonFunctions"; - -export const AssignedUsersSearch = () => { - - const submit = useSubmit(); - const [searchString, setSearchString] = useState("") - const params = useParams(); - const [, setSearchParams] = useSearchParams() - - return ( -
handleSearchFieldString(event, setSearchParams, searchString)} - > - setSearchString(event)} - onClear={() => { - handleClearSearchFieldString(setSearchParams) - }} - /> - - ); -}; \ No newline at end of file diff --git a/app/components/assignment/NewAssignmentRoleSearch.tsx b/app/components/assignment/NewAssignmentRoleSearch.tsx deleted file mode 100644 index cae16b9..0000000 --- a/app/components/assignment/NewAssignmentRoleSearch.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import {Search} from "@navikt/ds-react"; -import React, {useState} from "react"; -import {Form, useParams, useSubmit} from "@remix-run/react"; - - -export const NewAssignmentRoleSearch = () => { - - const submit = useSubmit(); - const params = useParams(); - const [searchString, setSearchString] = useState(""); - - return ( -
{ - submit({search: searchString}, {method: "GET", action: `/assignment/resource/${params.id}/role`}) - event.preventDefault() - }}> - setSearchString(event)} - onClear={event => { - submit({search: ""}, {method: "GET", action: `/assignment/resource/${params.id}/role`}) - }} - /> - - ); -}; \ No newline at end of file diff --git a/app/components/assignment/NewAssignmentUserSearch.tsx b/app/components/assignment/NewAssignmentUserSearch.tsx deleted file mode 100644 index ee342f1..0000000 --- a/app/components/assignment/NewAssignmentUserSearch.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import {Search} from "@navikt/ds-react"; -import React, {useState} from "react"; -import {Form, useParams, useSubmit} from "@remix-run/react"; - - -export const NewAssignmentUserSearch = () => { - - const submit = useSubmit(); - const params = useParams(); - const [searchString, setSearchString] = useState(""); - - return ( -
{ - submit({search: searchString}, {method: "GET", action: `/assignment/resource/${params.id}/user`}) - event.preventDefault() - }}> - setSearchString(event)} - onClear={event => { - submit({search: ""}, {method: "GET", action: `/assignment/resource/${params.id}/user`}) - }} - /> - - ); -}; \ No newline at end of file diff --git a/app/components/common/Search.tsx b/app/components/common/Search.tsx new file mode 100644 index 0000000..a43ff81 --- /dev/null +++ b/app/components/common/Search.tsx @@ -0,0 +1,44 @@ +import {Search as AkselSearch} from "@navikt/ds-react"; +import React, {useState} from "react"; +import {Form, useSearchParams} from "@remix-run/react"; +import { + filterResetPageParam, + handleClearSearchFieldString, + handleSearchFieldString +} from "~/components/common/CommonFunctions"; + +type SearchInputProps = { + label: string + id: string +} + +export const Search = ({label, id}: SearchInputProps) => { + const [searchString, setSearchString] = useState("") + const [searchParams, setSearchParams] = useSearchParams() + + const pageParam = searchParams.get("page") + + return ( +
{ + handleSearchFieldString(event, setSearchParams, searchString) + setSearchString("") + filterResetPageParam(pageParam, setSearchParams) + }} + > + setSearchString(event)} + onClear={() => { + handleClearSearchFieldString(setSearchParams) + }} + /> + + ); +}; \ No newline at end of file diff --git a/app/components/resource-admin/ResourceSearch.tsx b/app/components/resource-admin/ResourceSearch.tsx deleted file mode 100644 index a050218..0000000 --- a/app/components/resource-admin/ResourceSearch.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import {Search} from "@navikt/ds-react"; -import {Form, useSearchParams, useSubmit} from "@remix-run/react"; -import {filterResetPageParam} from "~/components/common/CommonFunctions"; -import {useState} from "react"; -import {handleClearSearchFieldString, handleSearchFieldString} from "~/components/common/CommonFunctions"; - -export const ResourceSearch = () => { - - const [searchString, setSearchString] = useState("") - const [searchParams, setSearchParams] = useSearchParams() - - const pageParam = searchParams.get("page") - return ( -
{ - filterResetPageParam(pageParam, setSearchParams) - handleSearchFieldString(event, setSearchParams, searchString) - setSearchString("") - }} - > - setSearchString(event)} - onClear={() => { - handleClearSearchFieldString(setSearchParams) - }} - /> - - ); -}; \ No newline at end of file diff --git a/app/components/resource-module-admin/ResourceModuleSearch.tsx b/app/components/resource-module-admin/ResourceModuleSearch.tsx index af4701e..4b4505a 100644 --- a/app/components/resource-module-admin/ResourceModuleSearch.tsx +++ b/app/components/resource-module-admin/ResourceModuleSearch.tsx @@ -1,23 +1,12 @@ -import {Search} from "@navikt/ds-react"; -import {useSearchParams} from "@remix-run/react"; -import React, {useState} from "react"; +import React from "react"; +import {Search} from "~/components/common/Search"; const ResourceModuleSearch = () => { - const [searchValue, setSearchValue] = useState("") - const [, setSearchParams] = useSearchParams() - - const handleSearch = (event: React.FormEvent) => { - setSearchParams(searchParams => { - searchValue ? searchParams.set("name", searchValue) : searchParams.delete("name") - return searchParams - }) - event.preventDefault() // Prevent refresh of page - } - return ( -
handleSearch(event)}> - setSearchValue(event)} /> - + ) } diff --git a/app/components/resource/ResourceSearch.tsx b/app/components/resource/ResourceSearch.tsx index 2c08293..d6f1616 100644 --- a/app/components/resource/ResourceSearch.tsx +++ b/app/components/resource/ResourceSearch.tsx @@ -1,39 +1,6 @@ -import {Search} from "@navikt/ds-react"; -import {useState} from "react"; -import {Form, useSearchParams} from "@remix-run/react"; -import { - filterResetPageParam, - handleClearSearchFieldString, - handleSearchFieldString -} from "~/components/common/CommonFunctions"; +import React from "react"; +import {Search} from "~/components/common/Search"; export const ResourceSearch = () => { - - const [searchString, setSearchString] = useState("") - const [searchParams, setSearchParams] = useSearchParams() - - const pageParam = searchParams.get("page") - - return ( -
{ - handleSearchFieldString(event, setSearchParams, searchString) - setSearchString("") - filterResetPageParam(pageParam, setSearchParams) - }} - > - setSearchString(event)} - onClear={() => { - handleClearSearchFieldString(setSearchParams) - }} - /> - - ); + return }; \ No newline at end of file diff --git a/app/components/role/RoleSearch.tsx b/app/components/role/RoleSearch.tsx index 54eb2de..afb2e83 100644 --- a/app/components/role/RoleSearch.tsx +++ b/app/components/role/RoleSearch.tsx @@ -1,39 +1,6 @@ -import {Search} from "@navikt/ds-react"; -import React, {useState} from "react"; -import {Form, useSearchParams} from "@remix-run/react"; -import { - filterResetPageParam, - handleClearSearchFieldString, - handleSearchFieldString -} from "~/components/common/CommonFunctions"; +import React from "react"; +import { Search } from "~/components/common/Search"; -export const RoleSearch = () => { - - const [searchString, setSearchString] = useState("") - const [searchParams, setSearchParams] = useSearchParams() - - const pageParam = searchParams.get("page") - - return ( -
{ - handleSearchFieldString(event, setSearchParams, searchString) - setSearchString("") - filterResetPageParam(pageParam, setSearchParams) - }} - > - setSearchString(event)} - onClear={() => { - handleClearSearchFieldString(setSearchParams) - }} - /> - - ); -}; \ No newline at end of file +export const RoleSearch = () => ( + +); \ No newline at end of file diff --git a/app/components/user/UserSearch.tsx b/app/components/user/UserSearch.tsx index f63a9d4..156bc1a 100644 --- a/app/components/user/UserSearch.tsx +++ b/app/components/user/UserSearch.tsx @@ -1,40 +1,8 @@ -import {Search} from "@navikt/ds-react"; -import React, {useState} from "react"; -import {Form, useSearchParams} from "@remix-run/react"; -import { - filterResetPageParam, - handleClearSearchFieldString, - handleSearchFieldString -} from "~/components/common/CommonFunctions"; - +import React from "react"; +import {Search} from "~/components/common/Search"; export const UserSearch = () => { - - const [searchString, setSearchString] = useState("") - const [searchParams, setSearchParams] = useSearchParams() - - const pageParam = searchParams.get("page") - return ( -
{ - handleSearchFieldString(event, setSearchParams, searchString) - setSearchString("") - filterResetPageParam(pageParam, setSearchParams) - }} - > - setSearchString(event)} - onClear={() => { - handleClearSearchFieldString(setSearchParams) - }} - /> - + ); }; \ No newline at end of file diff --git a/app/data/fetch-roles.ts b/app/data/fetch-roles.ts index 466b464..0189238 100644 --- a/app/data/fetch-roles.ts +++ b/app/data/fetch-roles.ts @@ -37,8 +37,8 @@ export const fetchRoleById = async (request: Request, id: string | undefined) => } -export const fetchMembers = async (request: Request, id: string | undefined, size: string, page: string, search: string) => { - const response = await fetch(`${ROLE_API_URL}${BASE_PATH}/api/roles/${id}/members?size=${size}&page=${page}&search=${search}`, { +export const fetchMembers = async (request: Request, id: string | undefined, size: string, page: string, name: string) => { + const response = await fetch(`${ROLE_API_URL}${BASE_PATH}/api/roles/${id}/members?size=${size}&page=${page}&name=${name}`, { headers: request.headers }); diff --git a/app/routes/resource-admin._index.tsx b/app/routes/resource-admin._index.tsx index 203347c..8308e48 100644 --- a/app/routes/resource-admin._index.tsx +++ b/app/routes/resource-admin._index.tsx @@ -4,7 +4,7 @@ import {Links, Meta, Scripts, useLoaderData, useRouteError} from "@remix-run/rea import {IResourceAdminList, IUnitItem, IUnitTree} from "~/data/types"; import type {LoaderFunctionArgs} from "@remix-run/router"; import {fetchApplicationCategory, fetchOrgUnits, fetchResourcesForAdmin} from "~/data/fetch-resources"; -import {ResourceSearch} from "~/components/resource-admin/ResourceSearch"; +import {Search} from "~/components/common/Search"; import {ResourceAdminTable} from "~/components/resource-admin/ResourceAdminTable"; import ChipsFilters from "~/components/common/ChipsFilters"; import {ResourceSelectApplicationCategory} from "~/components/resource-admin/ResourceSelectApplicationCategory"; @@ -97,8 +97,7 @@ export default function ResourceAdminIndex() { ))} */} - - + diff --git a/app/routes/resource-module-admin._index.tsx b/app/routes/resource-module-admin._index.tsx index c07f21b..5a92f71 100644 --- a/app/routes/resource-module-admin._index.tsx +++ b/app/routes/resource-module-admin._index.tsx @@ -25,7 +25,7 @@ export async function loader({request}: LoaderFunctionArgs) { const size = Number(url.searchParams.get("size") ?? "10"); const page = Number(url.searchParams.get("page") ?? "0"); const orgunits: string[] = url.searchParams.get("orgUnits")?.split(",") ?? [""]; - const name = url.searchParams.get("name") ?? ""; + const name = url.searchParams.get("search") ?? ""; const role = url.searchParams.get("accessroleid") ?? ""; const responseUsersPage = await fetchUsersWithAssignment(auth, page, size, orgunits, name, role); diff --git a/app/routes/resource-module-admin.opprett-ny-tildeling.tsx b/app/routes/resource-module-admin.opprett-ny-tildeling.tsx index 76e470d..85685aa 100644 --- a/app/routes/resource-module-admin.opprett-ny-tildeling.tsx +++ b/app/routes/resource-module-admin.opprett-ny-tildeling.tsx @@ -55,7 +55,7 @@ export async function loader({request}: LoaderFunctionArgs) { const itemsPerPage = url.searchParams.get("size") ?? "10"; const currentPage = url.searchParams.get("page") ?? "0"; const orgUnitIds = url.searchParams.get("orgUnits")?.split(",") ?? []; - const name = url.searchParams.get("name") ?? ""; + const name = url.searchParams.get("search") ?? ""; const roleFilter = url.searchParams.get("accessroleid") ?? "" const usersPageResponse = await fetchUsersWhoCanGetAssignments(auth, Number(currentPage), Number(itemsPerPage), orgUnitIds, name, roleFilter); diff --git a/app/routes/roles.$id.members.tsx b/app/routes/roles.$id.members.tsx index b3b3ea1..fedcc56 100644 --- a/app/routes/roles.$id.members.tsx +++ b/app/routes/roles.$id.members.tsx @@ -1,11 +1,13 @@ import React from 'react'; -import {Alert, Box, Detail, Heading, Tabs, VStack} from "@navikt/ds-react"; +import {Alert, Box, Detail, Heading, HStack, Tabs, VStack} from "@navikt/ds-react"; import {Link, Links, Meta, Scripts, useLoaderData, useRouteError} from "@remix-run/react"; -import {LoaderFunctionArgs} from "@remix-run/router"; +import {LoaderFunctionArgs} from "@remix-run/router"; import {fetchMembers} from "~/data/fetch-roles"; import {json} from "@remix-run/node"; import {MemberTable} from "~/components/role/MemberTable"; import {getSizeCookieFromRequestHeader} from "~/components/common/CommonFunctions"; +import {Search} from "~/components/common/Search"; +import ChipsFilters from "~/components/common/ChipsFilters"; export async function loader({params, request}: LoaderFunctionArgs) { const url = new URL(request.url); @@ -24,7 +26,7 @@ export async function loader({params, request}: LoaderFunctionArgs) { export const handle = { // @ts-ignore - breadcrumb: ({ params, data }) => Medlemmer + breadcrumb: ({params, data}) => Medlemmer } export default function Members() { @@ -37,15 +39,22 @@ export default function Members() { Medlemmer av gruppen - Antall medlemmer i gruppen: {members.totalItems} + + Antall medlemmer i gruppen: {members.totalItems} + + + + + - + ); } + export function ErrorBoundary() { const error: any = useRouteError(); // console.error(error);